Rspec 水豚的困惑;Matchers“;

Rspec 水豚的困惑;Matchers“;,rspec,capybara,Rspec,Capybara,因此,我通常在“断言”文本时看到3-4个不同的示例 水豚博士甚至提到了不止一个 assert\u text('foo') page.有文本('bar') page.应该有内容('baz')(显然有内容的页面与有文本的页面相同) expect(第页)。有内容('boop') 所以…这是检查同一事物的4种不同方法。我知道expect是一个rspec匹配器……但是其他的呢?我应该用什么?不幸的是,水豚的医生们并没有研究它们之间的区别 谢谢 assert\u text('foo')是一种通常与minit

因此,我通常在“断言”文本时看到3-4个不同的示例

水豚博士甚至提到了不止一个

assert\u text('foo')

page.有文本('bar')

page.应该有内容('baz')
(显然有内容的页面与有文本的页面相同)

expect(第页)。有内容('boop')

所以…这是检查同一事物的4种不同方法。我知道expect是一个rspec匹配器……但是其他的呢?我应该用什么?不幸的是,水豚的医生们并没有研究它们之间的区别

谢谢

assert\u text('foo')
是一种通常与minitest一起使用的断言

page.has_text?('bar')
只是一个返回true或false的方法。如果希望根据页面上文本的存在或不存在来更改行为,则可以使用此选项。在测试应用程序时不经常使用,因为您应该知道页面上会出现什么,并且不需要根据内容执行不同的行为。如果自动/刮削,则可能有用

page.should have_content('baz')
(显然,have_content与have_text相同)-如您所述,have_text是have_content的别名,因此您可以使用您喜欢的任何内容
have_content
是RSpec匹配器,仅在使用RSpec时使用
should
是旧的RSpec语法,它需要在每个对象上修补
should
方法,并已被
expect

期望(第页)。具有_内容('boop')-当前RSpec语法

因此,如果您使用minitest框架,请使用
assert\uxxx
样式方法,如果使用RSpec,则可以使用
expect
样式或
should
样式,尽管对于任何新的样式,您可能都希望使用
expect
样式