2012-03-27 4 views
3

У меня есть следующий шаг:Огурцы правильный шаг файл определения

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.

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

ответ

3

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

Назовите это что-то вроде 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" 
+0

Спасибо за хорошее объяснение. –