我正在使用黄瓜和水豚,rspec助手拧干测试案例。
当我使用have_content验证特定页面中是否存在文本时,即使页面中存在内容,也会抛出错误。
我的功能文件是
When I visit "/news"
Then I should not see a page with following content
| content |
| .*Confirm your email address now.* |
步骤定义文件是
Then /^I should see a page with following content$/ do |table|
table.hashes.each do |hash|
page.should have_content(hash[:content])
end
end
我得到的错误是
RSpec :: Expectations :: ExpectationNotMetError:期望找到文本 "。立即确认您的电子邮件地址。"在" The North FaceBanana RepublicLevi' sadidasTrue ReligionJ。 Ralph的CrewJordanPolo LaurenKids' BrandsGAPCarter的NikeChildren's PlaceGymboreeOshKosh B' goshConverseRalph LaurenJusticeOld NavyPeople也 SearchedVictoria's SecretChristian LouboutinGoyardForever 21AsosParties如何工作在PoshmarkNewsAllCommentsOffers想要 卖你的东西?在您的移动设备上下载Poshmark!确认您的 现在是电子邮件地址,以确保您收到重要的订单和帐户 。信息"
我正在寻找的文字也出现在页面中。
如果我在某个地方错了,请帮助我..
提前致谢。
答案 0 :(得分:0)
我发现了我所犯的错误。
has_content将采用正则表达式,但为此你需要传递一个正则表达式 - page.should have_content(/。 blah。 /)。如果你传递一个字符串,它会对相关的元素内容进行子字符串匹配,除非你传递确切的选项,然后使它做一个完全匹配的元素。应该has_content('blah',exact:true)
更改要素文件
When I visit "/news"
Then I should not see a page with following content
| content |
| Confirm your email address now|
而不是
When I visit "/news"
Then I should not see a page with following content
| content |
| .*Confirm your email address now.* |
纠正错误。