我从 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/