Come testare un'azione del controllore che invia un file?RSpec send_file testing
Se eseguo il test controller.should_receive(:send_file)
con "Modello mancante" perché non viene eseguito il rendering.
Come testare un'azione del controllore che invia un file?RSpec send_file testing
Se eseguo il test controller.should_receive(:send_file)
con "Modello mancante" perché non viene eseguito il rendering.
Un altro modo che funziona è:
controller.should_receive(:send_file).and_return{controller.render :nothing => true}
Per me, questo coglie il fatto che l'effetto collaterale previsto di send_file
è organizzare che nient'altro sia reso. (Anche se, sembra certamente un po 'traballante per avere lo stub chiamare un metodo sull'oggetto originale.)
Rails 4, RSpec 3:' 'and_return {value}' è deprecato. Usa "and_return (valore)" o un blocco di implementazione senza "and_return" invece –
È anche possibile fare questo:
result = get ....
result.body.should eq IO.binread(path_to_file)
Nizza, perché non ci ho pensato di che :) – Mirko
Per chiunque visualizzi questo usando le versioni più recenti di RSpec, 'stub!' È stato deprecato. Basta usare 'stub' –
E in Rspec 3, è' allow (controller) .per ricevere (: render) ' – mehulkar