2011-08-16 60 views
7

想要在這裏獲得一些意見。在Rspec中測試布爾值的最佳方法

什麼是檢查布爾值與RSPEC我已經看到它做了一些不同的方法的最佳方式:

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

而且我通常只關心鴨值,即,如果結果爲真/ false,那麼我不關心它的實際值是什麼...

+0

看起來你知道* how *,所以你想弄清楚什麼?有什麼你不喜歡你提供的選項? – coreyward

+1

雅我想我總是在上述三個之間漂移,我不知道什麼是「正確」的方式來做到這一點。我希望有人能解釋爲什麼一個選項可能比其他選項更好...... – Matthew

回答

13

這裏的之間的區別「== 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 

這基本上意味着,如果你只有汽車e如果值計算結果爲真,那麼您要使用==真

+1

我沒有意識到你可以通過值'it'來描述行,我總是使用subject {}來設置它。涼。 –

0

在我奉勸最好的辦法是rspec_boolean添加到您的Gemfile組中:發展:測試:

寶石「rspec_boolean」

而不是用它想:

期待(val.is_something?)到be_boolean

3

最後我做了相反的邏輯:

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