3

我正在使用 Prawn 和 Prawnto 在 Rails 3.2.6 中生成 PDF

我有一个响应 .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 回答