【问题标题】:How do I stub out PDF generation in RSpec tests?如何在 RSpec 测试中生成 PDF?
【发布时间】:2012-09-21 11:51:49
【问题描述】:

我在 Rails 3.2.6 中使用 Prawn 和 Prawnto 生成 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。有什么指点吗?

【问题讨论】:

    标签: ruby-on-rails rspec rspec-rails prawn prawnto


    【解决方案1】:

    这个怎么样?

    it "generates a pdf with prawnto" do
      controller.should_receive(:prawnto)
      get :pdf_route, :format => :pdf
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多