javascript - 如何测试 Chrome 扩展?

标签 javascript unit-testing google-chrome google-chrome-extension

有什么好的方法吗?我正在编写一个扩展,它作为内容脚本与网站交互并使用本地存储保存数据。我可以使用任何工具、框架等来测试这种行为吗?我意识到有一些用于测试 javascript 的通用工具,但是这些工具是否足够强大来测试扩展?单元测试是最重要的,但我也对其他类型的测试(例如集成测试)感兴趣。

最佳答案

是的,现有的框架非常有用..

最近,我将所有测试放在嵌入到应用程序中的“测试”页面上,但除非物理键入,否则无法访问。

例如,我可以在 chrome-extension://asdasdasdasdad/unittests.html

下访问页面中的所有测试

测试可以访问 localStorage 等。为了访问内容脚本,理论上您可以通过测试页面中嵌入的 IFRAME 进行测试,但是这些是更多集成级别的测试,需要单元测试您可以将其从真实页面中抽象出来,这样您就不会依赖它们,同样可以访问 localStorage。

如果您想直接测试页面,您可以编排您的扩展程序以打开新选项卡 (chrome.tab.create({"url": "someurl"})。对于每个新选项卡,您的内容脚本应运行并您可以使用测试框架来检查您的代码是否完成了它应该做的事情。

对于框架,JsUnit或更新的Jasmine应该可以正常工作。

关于javascript - 如何测试 Chrome 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2869827/

相关文章:

javascript - 如何禁用 Bootstrap 下拉列表

javascript - 如何确定我的 Angular 网页的速度?

phpunit 测试,检查传递给函数的参数

java - 期望任何东西作为参数来模拟使用 EasyMock

javascript - CSS 淡入淡出在 Chrome 中不起作用

javascript - Chrome "Unresponsive Page"误报(自 Chrome 32 起)

javascript - 获取登录屏幕的 typeError react native?

javascript - Protractor - 如何在配置文件中排除 spec 文件?

c++ - 在测试工具中覆盖默认代码的优雅方式

css - 评论作者姓名在 Chrome 中呈现得很好,但在 IE 8 中半空白