如何在功能说明中将Rails视图渲染为字符串

时间:2018-12-07 16:05:20

标签: ruby-on-rails rspec integration-testing wicked-pdf

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

我正在努力将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的{​​{1}}时失败,因为没有有效的HTTP请求。

有许多模糊的相关问题,但是(据我所知)它们全都涉及古老的Rails版本,或者与功能测试无关。

1 个答案:

答案 0 :(得分:0)

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

在使用RSpec和Capybara进行的功能测试中,页面内容可以通过page.html访问,在我的情况下,页面内容包含有效的PDF。

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