有没有好的方法来做到这一点?我正在编写一个扩展,它作为内容脚本与网站交互并使用本地存储保存数据。是否有任何工具、框架等可用于测试此行为?我意识到有一些用于测试 javascript 的通用工具,但是这些工具足以测试扩展吗?单元测试是最重要的,但我也对其他类型的测试(例如集成测试)感兴趣。
是的,现有的框架非常有用..
最近,我将所有测试都放在了嵌入到应用程序中但无法访问的“测试”页面上,除非进行物理输入。
例如,我可以在一个页面中访问所有测试chrome-extension://asdasdasdasdad/unittests.html
chrome-extension://asdasdasdasdad/unittests.html
测试可以访问localStorage等。对于访问内容脚本,理论上您可以通过测试页面中的嵌入式 IFRAME 进行测试,但是这些是更多集成级别的测试,单元测试将要求您将其从真实页面中抽象出来,以便您不要依赖它们,同样可以访问 localStorage。
localStorage
如果您想直接测试页面,您可以编排扩展程序以打开新选项卡 (chrome.tab.create({“url” : “someurl”})。对于每个新选项卡,您的内容脚本应该运行并且您可以使用你的测试框架来检查你的代码是否已经完成了它应该做的事情。
至于框架,JsUnit或更新的Jasmine应该可以正常工作。