ruby-on-rails rspec sendfile

ruby on rails - RSpec send_file testing



ruby-on-rails sendfile (3)

Desde Googling , parece que el render también se llamará en algún momento ... pero sin plantilla, causará un error.

La solución parece ser apagarlo también:

controller.stub!(:render)

¿Cómo probar una acción del controlador que envía un archivo?

Si lo hago con controller.should_receive(:send_file) prueba falla con "Falta plantilla" porque no se procesa nada.


Otra forma que funciona es:

controller.should_receive(:send_file).and_return{controller.render :nothing => true}

Para mí, esto captura el hecho de que el efecto secundario previsto de send_file es organizar que no se represente nada más. (Aunque, es cierto que parece un poco extraño que el stub llame un método al objeto original).


También puedes hacer esto:

result = get .... result.body.should eq IO.binread(path_to_file)