Pregunta

Estoy usando Test :: Unit con hombro para probar un controlador.

Como solo estoy probando el controlador, no quiero que se visualice la vista.

Estoy tropezando con algunos objetos, se lanzan algunos errores cuando se procesa la vista, pero la prueba no debe fallar, porque el controlador es correcto.

Entonces, ¿hay alguna forma de desactivar la representación de una plantilla / vista, desde mis pruebas?

Escuché que rSpec funciona así.

¿Fue útil?

Solución

Si estás usando Mocha, es fácil. Agregue esto a su prueba individual o su método de configuración:

@controller.expects(:render)

Si no lo estás, bueno, usa Mocha.

gem install mocha

Luego en tu test_helper.rb

require 'mocha'

Otros consejos

Realmente no deberías ver ninguna vista en tus pruebas. ¿Puedes publicar tu código de prueba fallido? Las pruebas del controlador (funcional) solo deberían verificar que una acción en particular está ocurriendo cuando se llama a su acción. Es decir, debe verificar que muestra la vista correcta o redirige a una acción diferente. También puede verificar la configuración del flash u otras variables para la vista. ¿Es este el tipo de esto que está probando?

Aquí hay un buen ejemplo de prueba de una acción de show con una solicitud de obtención tomada de los documentos de hombro:

class UsersControllerTest < Test::Unit::TestCase
  context "on GET to :show" do
    setup { get :show, :id => 1 }

    should_assign_to :user
    should_respond_with :success
    should_render_template :show
    should_not_set_the_flash

    should "do something else really cool" do
      assert_equal 1, assigns(:user).id
    end
  end
end

Quizás eche un vistazo a guías de rieles lo cual es bastante bueno también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top