DEV Community · Show DEV9/3 22:4052

Go测试从未执行被测试的JavaScript

My Go tests never executed a line of the JavaScript they were testing

阅读原文
作者构建了一个真实用户监控(RUM)工具,以单个Go二进制文件发布,包含245个测试函数,但测试从未执行被测试的JavaScript。工具目标是一个942字节的beacon,远小于Google的web-vitals(7226字节)。测试通过Go嵌入文件并断言字节,但未执行JS。作者改用Node.js通过Chrome DevTools协议驱动真实Chrome,进行45项脚本断言。还发现Chrome 152移除了Emulation.setPageVisibilityState,改用Input.dispatchMouseEvent。构建可复现性通过比较哈希验证。修复后,作者通过构建、运行并检查仪表板来证明修复有效。