因此,例如,当“断言”文本时,我通常会看到3-4个不同的例子。
水豚文档甚至提到超过1个
assert_text('foo')
page.has_text?('bar')
page.should have_content('baz')
(显然has_content与have_text相同)
expect(page).to have_content('boop')
所以......这有4种不同的检查方式。我知道expect
是一个rspec匹配器......但其余的呢?我应该使用什么?不幸的是,Capybara文档没有区分它们。
谢谢!
答案 0 :(得分:1)
assert_text('foo')
是一个通常与minitest一起使用的断言。
page.has_text?('bar')
只是一个返回true或false的方法。如果您想根据页面上是否存在文本来更改行为,则可以使用此方法。在测试应用程序时不经常使用,因为您应该知道页面上会发生什么,而不需要根据内容执行不同的行为。如果自动化/抓取,可能很有用。
page.should have_content('baz')
(显然has_content与has_text相同) - 正如你所说 - have_text是have_content的别名,所以你可以使用你喜欢的任何一个。 have_content
是RSpec匹配器,仅在使用RSpec时使用。 should
是旧的RSpec语法,需要将should
方法修补到每个对象上,并且已被expect
取代
期待(页面).to have_content(' boop') - 当前的RSpec语法
因此,如果你使用minitest测试框架使用assert_xxx
样式方法,如果使用RSpec,你可以使用expect
样式或should
样式,但是您可能希望使用expect
样式的任何新内容。