Как я могу утверждать нулевое присутствие переменных вспышки с огурцом-капибарой? - PullRequest
4 голосов
/ 09 сентября 2011

Я запускаю проект Rails 3.0.7 с Cucumber и Capybara и у меня есть определение шага, которое проверяет, существует ли flash [: error]:

Then /^I should be able to see the main page properly$/ do
    current_path.should == "/"
    flash[:error].should == nil
end

Когда я запускаю тест на огурецЯ получаю сообщение об ошибке

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'

Это правильный способ обработки утверждений переменных?Я заметил, что если бы я использовал сеансы [: что-то], произошла бы ошибка того же типа.

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

Вы должны проверить, что на самом деле видно на странице, например, в этом случае:

page.should_not have_css('.flash')
0 голосов
/ 14 ноября 2017

Чтобы утверждать, что нет flash набора сообщений (любого типа), вы можете сделать:

assert_predicate flash, :empty?

Чтобы утверждать, что нет сообщения flash определенного набора типов (:error в этом примере), вы можете сделать:

assert_predicate flash[:error], :nil?
...