我正在运行一个带有 Cucumber 和 Capybara 的 Rails 3.0.7 项目,我有一个步骤定义来检查 flash[:error] 是否存在:
Then /^I should be able to see the main page properly$/ do
current_path.should == "/"
flash[:error].should == nil
end
当我运行 cucumber 测试时,出现错误
And I should be able to see the main page properly # features/step_definitions/user_auth_steps.rb:17
undefined method `flash' for nil:NilClass (NoMethodError)
./features/step_definitions/user_auth_steps.rb:19:in `/^I should be able to see the main page properly$/'
features/user_auth.feature:10:in `And I should be able to see the main page properly'
这是处理变量断言的正确方法吗?我注意到如果我要使用 session[:something],也会发生相同类型的错误。
最佳答案
您应该检查页面上实际可见的内容,例如在这种情况下:
page.should_not have_css('.flash')
关于ruby-on-rails - 如何使用 Cucumber-Capybara 断言 flash 变量为零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7357742/