也许我只是使用这个错误,因为我以前使用过Rspec的匹配器(expect(page).to have_content('foo')
)
但是我不确定哪个是真的“最好”使用,所以我尽可能坚持使用Capybara确定范围。
无论如何,我有一段基本代码可以检查登录时的弹出文本:
page.has_text?('Signed in successfully.')
够容易吗?好吧,我可以将文本更改为任何内容,例如:
page.has_text?('THIS IS WRONG')
它仍然通过?我只是错了吗?
答案 0 :(得分:1)
如记录#has_text?只是一个布尔方法,它将返回true或false。它不是断言,因此除非您检查响应是真还是假,否则不会导致测试失败。如果您想使用rspec检查页面上是否存在文本,那么您应该使用以前使用的文本
expect(page).to have_content('expected text')
have_content
匹配器(别名为have_text
)是由Capybara提供的匹配器,专为您正在做的事情而设计。
如果您不再使用RSpec,那么您可以
page.assert_text('expected text')