我想从其他人那里获得有关编写Cucumber步骤定义的经验的意见。 我的初衷是验证一个场景中是否存在特定链接 验证它在另一个场景中不存在。
所以我有以下两个步骤。在我的天真中,我以为我可以使用'!find_link(...)' 最后我决定使用例外。 我想就两个方面征求反馈意见: 1.我在step_definition中使用异常的方法 2.期望在呈现的页面中显式查找链接是否有意义?
当我昨晚完成工作时,我忍不住想“为什么我不能简单地使用: 我不应该看到'注册'?“今天早上我突然意识到'注册'可以包含在页面某个段落的某个段落中。
以下是步骤,提前谢谢......
Then /^I should see link: ?"([^"]*)"$/ do |link|
find_link("#{link}")
end
Then /^I should not see link: ?"([^"]*)"$/ do |link|
# !find_link("#{link}") - commented out because it won't fail if link is present
begin
find_link("#{link}")
raise FindException
rescue Capybara::ElementNotFound
end
end
答案 0 :(得分:0)
'然后'步骤定义定义应该始终包含一个断言,例如应该如果使用RSpec或断言,如果使用Test :: Unit。
因此,如果您想要验证不存在特定网址,最好这样做:
should_not have_link(link)
但是,将步骤重写为:
可能会更好Then I should not see a sign-up option
在步骤定义中,您可以检查与特定类的链接,而不是检查URL:
should_not have_css('a.signup')