使用 Cucumber 和 Capybara,有没有办法验证页面上不存在字符串?
例如,我将如何编写与此步骤相反的内容:
Then /^I should see "(.*?)"$/ do |arg1|
page.should have_content(arg1)
end
如果arg1
存在,则通过。
如果找到,我将如何编写失败arg1
的步骤?
使用 Cucumber 和 Capybara,有没有办法验证页面上不存在字符串?
例如,我将如何编写与此步骤相反的内容:
Then /^I should see "(.*?)"$/ do |arg1|
page.should have_content(arg1)
end
如果arg1
存在,则通过。
如果找到,我将如何编写失败arg1
的步骤?
Capybara有一个has_no_content
匹配器。所以你可以写
Then /^I should not see "(.*?)"$/ do |arg1|
page.should have_no_content(arg1)
end
在当前的 Rspec 3.4(2016)中,这是测试没有内容的推荐方法:
expect(page).not_to have_content(arg1)
如果你想让它读得更好一点,你也可以使用should_not :
Then /^I should not see "(.*?)"$/ do |arg1|
page.should_not have_content(arg1)
end
更多信息:https ://www.relishapp.com/rspec/rspec-expectations/docs
目前,您可以使用:
Then /^I not see "(.*?)"$/ do |arg1|
expect(page).to have_no_content(arg1)
end
如果在页面中找到内容,则您的测试是红色的
哦,等等,我想通了。这有效:
Then /^I should see "(.*?)"$/ do |arg1|
page.has_content?(arg1) == false
end