ruby-on-rails - Ruby on Rails 3 + Rspec + capybara : check response status

标签 ruby-on-rails ruby ruby-on-rails-3 rspec capybara

我从 Webrat 迁移到 Capybara,现在我遇到了很多错误。例如在 webrat 中我可以在集成测试中使用它:

response.should be_success

但是 Capybara 表明:

Failure/Error: response.should be_success
     NoMethodError:
       undefined method `success?' for nil:NilClass

有没有提供这种功能的方法?

UPD:我的规范:

require 'spec_helper'

describe "Admins" do
  before(:each) do
    @admin = FactoryGirl.create(:admin)

    visit '/'
    click_link "Login"
    fill_in "Email",  :with => @admin.email
    fill_in "Password", :with => 'qwerty'
    click_button "Sign in"
  end

  describe "Admin panel" do
    it "should have correct links" do
      click_link "User"
      response.should be_success
    end
  end
end

最佳答案

您正在混合 Controller 和请求规范。

在 Controller 规范中,您检查响应,在请求规范中,您检查页面内容,因为您只能访问 html。

关于ruby-on-rails - Ruby on Rails 3 + Rspec + capybara : check response status,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435800/

相关文章:

ruby-on-rails - 选择动态数组的下拉列表

ruby-on-rails - 如何在关闭 pry 的情况下启动 rails 控制台?

ruby-on-rails - 分层设置模式

ruby-on-rails - Rails Logger似乎正在复制日志行

ruby-on-rails-3 - Heroku Cedar 堆栈和 Rails 3.1 RC5 不显示图像?

javascript - 与 Javascript 相比,执行 AES 加密是 Ruby

ruby-on-rails - 如何使用 YARD 记录 Rake 任务?

c - 如何在 Linux 中编写文本模式的图形用户界面?

ruby-on-rails-3 - rails3 will_paginate 哈希对象

css - rails 3.2 Bootstrap 中的可切换选项卡