我有方法从预定义的数组返回随机值(即:)[ 'value1', 'value2'].我该如何用rspec测试?
我想做点什么:
expect(FooClass.new.value).to be_in ['value1', 'value2']
Run Code Online (Sandbox Code Playgroud)
有办法吗?谢谢.
另外,还有一个or
expect('value').to eq('value1').or eq('value2')
Run Code Online (Sandbox Code Playgroud)
优点:
expected: "value1"
got: "value"
...or:
expected: "value2"
got: "value"
Run Code Online (Sandbox Code Playgroud)
正如muirbot指出的那样,您应该将正在测试的值传递给expect(),而不是相反。
它更灵活,如果有人来这里寻找类似以下问题的解决方案,它会起作用:
expect({one: 1, two: 2, three: 3}).to have_key(:one).or have_key(:first)
Run Code Online (Sandbox Code Playgroud)
用这个
expect(['value1', 'value2']).to include(FooClass.new.value)
Run Code Online (Sandbox Code Playgroud)
或者简单的布尔匹配
expect(['value1', 'value2'].include? FooClass.new.value).to be true
Run Code Online (Sandbox Code Playgroud)