3

Rails 3.2.6でPDFを生成するためにPrawnとPrawntoを使用しています

次のように .pdf 拡張子に応答するコントローラーがあります。

respond_to do |format|
  format.pdf { prawnto some_options }
end

そして、これを行うテスト:

get :pdf_route, :format => :pdf
response.header['Content-Type'].should include 'application/pdf'

PDF のレンダリングには約 2 ~ 3 秒かかり、テスト スイートの速度が大幅に低下します。

とはいえ、コントローラー テストでPDF の内容をテストしたくないので、PDF 生成を完全にスタブ化し、respond_to を使用して適切な PDF ビュー テンプレートに委譲するようにします。これは私が理解できなかったビットです。

これまでに試したことは次のとおりです。

format = mock("format")
format.stub(:pdf).and_return "some PDF stuff"
controller.stub(:respond_to).and_yield(format)

ただし、それは役に立たないようです。コントローラーは依然として PDF のレンダリングを終了します。ポインタはありますか?

4

1 に答える 1

1

これはどう?

it "generates a pdf with prawnto" do
  controller.should_receive(:prawnto)
  get :pdf_route, :format => :pdf
end
于 2013-07-18T06:28:14.637 に答える