如何测试 application.js 在生产中异步加载

How to test that application.js is loaded asynchronously in production

使用水豚,我想测试 application.js 文件是否被异步加载。我试过下面的代码

expect(page).to have_css('script[async="async"][src="/assets/application.js"]', visible: false)

但这不起作用,因为运行生产模式下的测试,添加了摘要,所以文件名类似于application-ae5fag34.js。这怎么办?

选择器 script[src^="/assets/application-"][src$=".js"][async="async"] 应该有效。但是,首先不需要这样做。 运行 在您的生产服务器上进行测试并不是一个好主意。

您应该 运行 在本地或 CI 服务器上进行测试,以便在错误最终投入生产之前发现错误。许多面向测试的 gem 不适合生产,可能会导致安全漏洞。