我有以下步骤:
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 。
我应该在哪里正确地定义这个定义?
答案 0 :(得分: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"