2011-08-16 16 views
7

Cercando di ottenere alcune opinioni qui.Il modo migliore per testare i valori booleani in Rspec

Qual è il modo migliore per controllare i valori booleani con RSPEC ho visto fare alcuni modi diversi:

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

Anche io di solito interessa solo il valore d'anatra, cioè, se si restituisce true/falso, allora non mi interessa quello che il suo valore reale è ...

+0

Sembra che tu sappia * come *, quindi cosa stai cercando di capire? C'è qualcosa che non ti piace delle opzioni che hai fornito? – coreyward

+1

Ya credo di essere sempre alla deriva tra i tre precedenti e non so davvero quale sia il modo "giusto" per farlo. Speravo che qualcuno potesse spiegare perché un'opzione potrebbe essere migliore delle altre ... – Matthew

risposta

13

Ecco la differenza tra "== true" e "essere (vero)":

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 

che in pratica significa che se si solo auto e se un valore restituisce true allora si desidera utilizzare == true

+1

Non mi rendevo conto che potevi passare il valore "si" si riferisce alla riga descrittiva, avevo sempre usato subject {} per impostarlo . Freddo. –

0

Nel mio consiglio il modo migliore è quello di aggiungere al vostro rspec_boolean Gemfile nel gruppo: sviluppo,: prova:

gioiello 'rspec_boolean'

e poi utilizzarlo come:

aspettare (val.is_something?) per be_boolean

3

ho finito per fare la logica opposta:.

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