您如何比较RSPec中的多个RHS值?

时间:2011-05-31 16:45:01

标签: ruby-on-rails ruby comparison rspec

我是RSpec的新手,我正在尝试运行“should == A || B”,但是它忽略了'B'并且仅与'A'进行比较(因此当val为'时失败' B'):
Sample.find(:all).map(&:param).each{|val| val.should == 'A'||'B'}

有人知道我在比较中如何包含'B'吗?

4 个答案:

答案 0 :(得分:4)

['A', 'B'].should include(val)

这可能会让您的规格通过,但这是您想要测试的吗?返回值是一个集合的成员?如果是这样,那么也许这是一个很好的解决方案。

答案 1 :(得分:2)

你也可以这样做:

(x == A || x == B).should be_true

答案 2 :(得分:0)

Sample.find(:all).map(&:param).each{ |val| ['A', 'B'].should.include?(value) }

然而,这似乎是一个奇怪的测试。

答案 3 :(得分:0)

假设您正在尝试执行存在检查,我会按如下方式重写您的代码:

Sample.exists?(:conditions => {:params => %w(A B)}).should_be_true