2010-05-29 25 views
5

He generado algunos andamios para mi aplicación de rieles.¿Por qué mis pruebas funcionales están fallando?

Estoy ejecutando las pruebas generadas y están fallando.

por ejemplo

test "should create area" do 
    assert_difference('Area.count') do 
     post :create, :area => { :name => 'area1' } 
    end 

    assert_redirected_to area_path(assigns(:area)) 
    end 

esta prueba es no diciendo que:

1) Fallo: test_should_create_area (AreasControllerTest) [/test/functional/areas_controller_test.rb:16]: "Area.count" no cambió en 1. < 3> esperado, pero era < 2>.

Solo hay un campo en el modelo: nombre. Estoy poblando esto, así que no puede ser porque no estoy completando el único campo.

Puedo ejecutar el sitio y crear un área con el nombre 'area1'. Entonces la realidad está teniendo éxito, pero la prueba está fallando.

No puedo preguntar por qué está fallando, porque estoy seguro de que aquí no hay suficiente información para que nadie sepa por qué. Estoy atascado en saber qué avenirse para averiguar por qué la prueba está fallando. Incluso colocando pone en el código no imprimir ...

¿Qué pasos puedo seguir para rastrear esto?

+0

La salida de test.log debería ser útil aquí, para que pueda ver si realmente se está creando un Área o si se está consumiendo algún error de SQL. – jdl

+0

Aaahh ... Ok eso ayuda. Test.log me muestra que la prueba está fallando porque no he iniciado sesión. Lo configuré para que solo los usuarios autenticados puedan crear áreas. Todo tiene sentido. ¡Debe hacer que una respuesta así puedo aceptarlo! Gracias –

Respuesta

2

Según la solicitud anterior, y que coincida con lo que esperaba que encontrara cuando buscó en sus registros, tiene una autorización que no se cumple en su prueba.

1

@request y @response también son objetos útiles para mirar (es decir, puts @response dentro de su prueba). No sé qué autenticación está utilizando, pero consulte RAILS_ROOT/lib para authenticated_test_helper, o /lib, o /test de su gema de autenticación. Encontrarás métodos para realizar un inicio de sesión.

Cuestiones relacionadas