如何在RSpec测试中删除PDF生成?

时间:2012-09-21 11:51:50

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

我正在使用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。有什么指针吗?

1 个答案:

答案 0 :(得分:1)

这个怎么样?

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