2011-08-16 12 views
7

Buscando obtener algunas opiniones aquí.La mejor manera de probar valores booleanos en Rspec

¿Cuál es la mejor manera de comprobar los valores booleanos con RSPEC he visto hacer algunas maneras diferentes:

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

también por lo general sólo se preocupan por el valor de pato, es decir, si se evalúa como verdadera/false, entonces no me importa lo que su valor real es ...

+0

Parece que sabes * cómo *, entonces ¿qué estás tratando de averiguar? ¿Hay algo que no te gusta de las opciones que has proporcionado? – coreyward

+1

Ya supongo que siempre voy a la deriva entre los tres anteriores y realmente no sé cuál es la forma "correcta" de hacerlo. Esperaba que alguien pudiera explicar por qué una opción podría ser mejor que las demás ... – Matthew

Respuesta

13

Aquí es la diferencia entre "== true" y "Be (verdadera)":

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 

lo que significa, básicamente, que si solo carro E Si un valor se evalúa como verdadera, entonces usted desea utilizar == true

+1

No me di cuenta de que podía pasar el valor "se refiere" a la línea de descripción, siempre había usado subject {} para configurarlo . Guay. –

0

En mi consejo es la mejor manera de añadir a su rspec_boolean Gemfile en el grupo: desarrollo,: Prueba:

joya 'rspec_boolean'

Y que usarlo como:

esperar (val.is_something?) a be_boolean

3

que terminé haciendo la lógica opuesta:.

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