2012-09-05 15 views
10

Soy nuevo en las pruebas y tengo problemas para depurar como normalmente lo haría en un modelo o controlador.¿Cómo puedo depurar mejor en RSpec?

He creado un usuario de una fábrica (usando FactoryGirl, si eso hace la diferencia), y estoy bastante seguro de que el método de creación está fallando debido a la validación al guardar. Sin embargo, me encantaría saber cómo depurar un modelo instanciado durante la prueba.

He intentado:

user.inspect 
puts user 
raise user.to_yaml 

(Este último funciona, pero se detiene la ejecución del resto de mis pruebas, y no muestra errores de validación - sólo demuestra la existencia o no existencia de el modelo intenté crear instancias.)

Aparte de plantear el modelo como un error, no hay salida de depuración durante las pruebas, y la única otra cosa que he podido hacer es rastrear el registro para mi DB de prueba y ver lo que está sucediendo allí, pero parece torpe en el mejor de los casos. ¿Qué métodos sugerirías para lograr lo que estoy buscando?

Gracias por cualquier dirección

Respuesta

2

Pedido Plymouth: https://github.com/banister/plymouth

Funciona con palanca para darle una agradable interfaz de depuración REPL & cuando una prueba falla. Lo he usado en algunos proyectos y me pareció muy útil para problemas oscuros en las pruebas.

+1

gracias @agmcleod. Plymouth se ve bien al menos para mostrar más detalles sobre los errores, pero no veo una manera de depurar ejemplos de modelo allí. – jbnunn

+1

¡Me encanta el concepto de Plymouth! Antes de probarlo, ¿alguien sabe de una versión que se mantiene? EDITAR: "Usar palanca de rescate, es el sucesor espiritual de Plymouth:" –

0

Siempre puede descifrar una sesión pry agregando binding.pry a su prueba. De esta forma, puede tener acceso a lo que esté disponible en el punto exacto de la prueba (y en otro lugar, si lo desea). Más información sobre cómo agregar pry a Rails en el official Pry wiki

Cuestiones relacionadas