Rspec:在期望.to eq语句中使用OR

dpg*_*000 5 ruby rspec ruby-on-rails

我有一个rspec测试,我想确保只有两个值可以传递给我的实例变量.我注意到,should satisfy使用块似乎是更可接受的测试两种结果可接受的方式,但我想实现expect().to eq()如下所示:

it "only allows -2 or 2 as values" do
    expect (@note.value).to eq(2 or -2)
  end
Run Code Online (Sandbox Code Playgroud)

这是我正确的rspec测试的正确语法吗?我理解一个should陈述背后的想法,而且我更关心为什么在复合期望中should使用expect .to eq时更好(如果实际上是这样的话).

谢谢.

Myr*_*ton 8

你可以把or两个匹配器放在一起:

ruby expect(@note.value).to eq(2).or eq(-2)

欲了解更多信息:

http://rspec.info/blog/2014/01/new-in-rspec-3-composable-matchers/#compound-matcher-expressions