首页 > 解决方案 > 如何将 Rails 视图呈现为功能规范中的字符串

问题描述

在 Rails 5.2.2 应用程序的 RSpec 功能规范(集成测试)中,我想将视图呈现为需要进一步处理为 PDF 文件的字符串(使用wkhtmltopdfwicked_pdf gem)。

我正在努力将 Rails 视图呈现为字符串。

我试过这个:

something = create :something # A FactoryBot factory
controller = SomeThingsController.new
view = controller.render_to_string '/some_things/show.pdf.haml',
    locals: { :@something => something }

这种工作,但在我的视图尝试使用root_url未定义的情况下失败,因为没有有效的 HTTP 请求。

有许多模糊相关的问题,但它们(据我所知)要么是指古老的 Rails 版本,要么与功能测试无关。

标签: ruby-on-railsrspecintegration-testingwicked-pdf

解决方案


自己找到了解决方案......如果其他人有同样的问题,我会在这里发布。

在 RSpec 和 Capybara 的功能测试中,页面内容可以作为 访问page.html,在我的例子中包含有效的 PDF。

something = create :something # A FactoryBot factory
visit something_path(something)
pdf = page.html

推荐阅读