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)