gpt4 book ai didi

ruby-on-rails - 测试打印 Action

转载 作者:行者123 更新时间:2023-11-28 21:13:48 25 4
gpt4 key购买 nike

我一直在为我的应用程序编写 rspec + capybara 测试并提出了一个问题 - 如何测试打印操作,因为我正在使用电子表格 gem 生成 pdf,然后可下载。为了打印此文件,我使用 iframe ?我知道,可以用

测试下载
page.response_headers['Content-Disposition'].should include("filename=\"file.png\"")

但是打印有response_headers吗?

谢谢

最佳答案

我认为打印不是后端应该关心的事情,甚至是浏览器的渲染引擎。它只是浏览器通过自定义功能(如 Chrome)或默认操作系统打印面板(如 Safari)支持的东西。

这让我想到下一个问题。你想测试什么?你想测试打印是否有效?这似乎有点超出您的 RSpec 测试的范围。您已经说过您测试了为用户创建 PDF 然后下载的功能。从那一刻起,该 PDF 发生的任何事情都超出了您的应用程序范围,因此它不可测试,而且最肯定不应该被测试。

只要 PDF 功能正常工作,您就知道您的应用程序正常工作。根据个人经验,接下来发生的完全是一个黑盒子,有些人不明白PDF是什么,有些人不知道如何控制他们的打印机。因此,我不会专注于此测试,而是专注于编写一些随您的 PDF 下载一起提供的文档。

更新

如果使用 Window.print() 函数,您可以执行以下操作:

Window.print() 不会返回任何值供您检查,但您可以将该函数包装在您自己的函数中并添加您自己的返回值。

当然,这只会测试包装函数是否实际被调用,但如果 print() 函数正确触发则不会。但请放心,有大得多的公司确保他们的打印功能在他们的浏览器中工作,所以就像你不应该测试基本的 Rails 方法如 validations 一样,你也应该跳过测试浏览器的事情像 print()back()

您唯一可以检查的是当用户禁用 javascript 时您提供解决方案。

关于ruby-on-rails - 测试打印 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11159630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com