黄瓜step_definitions关于风格/方法的问题我应该看看

时间:2011-10-04 08:09:38

标签: ruby-on-rails-3 cucumber

我想从其他人那里获得有关编写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

1 个答案:

答案 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')