RSpec中是否有一种方法可以提供比不是所有匹配器更高的优先级?

时间:2015-08-07 09:45:02

标签: ruby rspec rspec3

RSpec 3提供all matcher。例如,

expect(['Tom', 'Tony', 'Rosa']).to all( include("o") )

你也可以

expect(['Tom', 'Tony', 'Rosa']).to_not all( include("o") )

但你怎么表达“对所有人不是”?

2 个答案:

答案 0 :(得分:1)

定义要用于测试列表中每个元素的匹配器的否定版本,例如,

expect(%w(Tom Tony Rosa)).to all(exclude('o'))

并像

一样使用它
{{1}}

答案 1 :(得分:0)

根据文档并快速浏览代码,似乎没有内置all_not匹配器,因此必须迭代数组才能获得结果,如下所示:

['Tom', 'Tony', 'Rosa'].each { |name| expect(name).to_not contain('o') }

您可以在https://github.com/rspec/rspec-expectations/blob/9ff22694fa88cb0b0e794b6f99f3cfacfa909bf4/lib/rspec/matchers/built_in/all.rb

查看内置匹配器,包括all