ruby-on-rails - 如何在 RSpec 测试中剔除 PDF 生成?

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

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

我有一个 Controller 可以像这样响应 .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 秒,这大大降低了我的测试套件的速度。

也就是说,由于我不想在我的 Controller 测试中测试 PDF 的内容,我想完全停止 PDF 生成,并确保我委托(delegate)给适当的使用 respond_to 的 PDF 查看模板。这是我无法弄清楚的一点。

到目前为止,这是我尝试过的:

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

但这似乎没有帮助, Controller 最终仍会呈现 PDF。有什么指点吗?

最佳答案

这个怎么样?

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

关于ruby-on-rails - 如何在 RSpec 测试中剔除 PDF 生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530037/

相关文章:

ruby-on-rails - 如何在 seeds.rb 中批量加载之前删除数据库索引?

ruby-on-rails - 从 gem 确定 rails 环境

ruby-on-rails - Nokogiri 无法在 CentOS 中读取/解析 HTML 文件的结构

html - 如何对字符串进行 HTML 编码/转义?有内置的吗?

ruby - 使用 headless Chrome 将 URL 列入黑名单

rspec - 如何测试 ApplicationRecord 抽象基类中的方法?

ruby-on-rails - 由于模型中的外键,FactoryGirl 炸毁了规范

ruby-on-rails - 应该使用自定义关系名称匹配器 has_many

ruby-on-rails - Shoulda Matchers validate_uniqueness_of 范围到多列

ruby-on-rails - RSpec & Tire gem:测试 Tire::Results::Collection