在Rspec中测试布尔值的最佳方法

时间:2011-08-16 18:53:54

标签: ruby-on-rails rspec rspec2

希望在这里得到一些意见。

使用RSPEC检查布尔值的最佳方法我已经看到它采用了几种不同的方式:

myvar.should == true
myvar.should be true
myvar.should be

此外,我通常只关心duck值,也就是说,如果它的值为true / false,那么我不关心它的实际值是什么......

3 个答案:

答案 0 :(得分:14)

这是“== true”和“be(true)”之间的区别:

describe true do
  it { should be(true) }
  it { should be_true }
end

describe 'true' do
  it { should_not be(true) }
  it { should be_true }
end

这基本上意味着如果你只关心一个值是否为true,那么你想使用== true

答案 1 :(得分:3)

我最后做了相反的逻辑:

expect([true, false]).to include myvar

答案 2 :(得分:0)

在我的建议中,最好的方法是将rspec_boolean添加到组中的Gemfile:development,:test:

gem' rspec_boolean'

而不是像使用它一样:

期待(val.is_something?)。to be_boolean