Файл определения правильного шага огурца - PullRequest
3 голосов
/ 28 марта 2012

У меня есть следующий шаг:

Then I should see an error message

с идентичным определением:

Then /^I should see an error message$/ do
    page.should have_selector('#flash_alert', text: 'Invalid')
end

в двух разных функциях: admin_sign_in.feature и user_login.feature .

Где правильно разместить определение?

1 Ответ

3 голосов
/ 28 марта 2012

Создать новый файл.

Назовите это как flash_message_steps.rb или error_steps.rb или как угодно. Хотя я бы предложил что-то общее, называть это admin_steps.rb или user_steps.rb на самом деле не имеет смысла. Все файлы в папке step_definitions загружаются автоматически. Просто убедитесь, что вы определили его один раз, так как повторяющиеся определения для одного и того же шага вызовут ошибку неоднозначности.

Я бы также порекомендовал сделать ваш шаг более общим, например:

Then /^I should see an error message containing "([^\"]*)"$/ do |message|
    page.should have_selector('#flash_alert', text: message)
end

Затем можно использовать одно и то же определение для проверки нескольких ошибок:

Then I should see an error message containing "Invalid"

Then I should see an error message containing "You must sign in first"
...