Как отобразить представление Rails в строку в спецификации объекта - PullRequest
0 голосов
/ 07 декабря 2018

В спецификации возможностей RSpec (тест интеграции) для приложения Rails 5.2.2 я хотел бы отобразить представление в строку, которая мне нужна для дальнейшей обработки, в файл PDF (используя wkhtmltopdf и wicked_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 или не связаны с тестами возможностей.

1 Ответ

0 голосов
/ 08 декабря 2018

Нашел решение сам ... Я выкладываю его здесь, если у других такая же проблема.

В функциональном тесте с RSpec и Capybara содержимое страницы доступно как page.html, что в моем случаесодержит действительный PDF.

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