2009-07-31 7 views
5

Esto parece una pregunta simple pero no puedo encontrar la respuesta en ningún lado. Me he dado cuenta de que, en general, las pruebas en una aplicación Ruby on Rails se pueden escribir como:¿Debo escribir pruebas de rieles con la palabra clave def o test?

test "the truth" do 
    assert true 
    end 

o

def the_truth 
    assert true 
    end 

Parece más reciente material de prueba, escribe la primera forma, pero no puedo parece encontrar una razón para esto. ¿Se favorece uno sobre el otro? ¿Hay uno más correcto? Gracias.

Respuesta

8

En los últimos años ha habido un cambio de los nombres cortos y abreviados de las pruebas a nombres de pruebas más largos y similares a las oraciones. Esto se debe en parte a la popularidad de RSpec y al concepto de que las pruebas son especificaciones y deben ser descriptivas.

Si prefiere los nombres de las pruebas descriptivas, le recomiendo encarecidamente usar el método test. Encuentro que es más legible.

test "should not be able to login with invalid password" do 
    #... 
end 

def_should_not_be_able_to_login_with_invalid_password 
    #... 
end 

Además, como la descripción es una cadena, puede contener cualquier carácter. Con def, tiene limitaciones para los personajes que puede usar.

+0

¿El método 'test' es parte de Rspec o alguna otra biblioteca? – Pithikos

2

Creo que el primer método se implementó comenzando con Rails 2.2. Hasta donde yo sé, simplemente mejora la legibilidad de su código (ya que def puede ser cualquier función mientras la prueba se usa solo en casos de prueba). ¡Buena suerte!

-1

Sugeriría hacer sus pruebas con RSpec o Cucumber. Yo uso ambos para probar todas mis aplicaciones. RSpec se utiliza para probar los modelos y controladores, y Cucumber prueba las Vistas (a través de la funcionalidad Webrat incluida).

Cuestiones relacionadas