gpt4 book ai didi

unit-testing - 单元测试 WebExtensions

转载 作者:行者123 更新时间:2023-12-02 03:08:28 26 4
gpt4 key购买 nike

如何对网络扩展进行单元测试?

对于较旧的 Firefox 扩展,已弃用的 jpm 工具有一个 jpm test 命令,该命令对从 .js 导出的方法运行单元测试文件。 web-ext 这无论如何都可能吗? ?还是用手? Google Chrome 扩展程序怎么样?

以下面的background.js为例:

function redirect(requestDetails) {
console.log("Redirecting: " + requestDetails.url);
return { redirectUrl: requestDetails.uri + '&helloworld'};
}

chrome.webRequest.onBeforeRequest.addListener(
redirect,
{urls: ["<all_urls>"]}
);

如何测试redirect()

更新:https://github.com/google/gjstest可能用于此。不过,我还没有开始使用它。

更新:回答后好像是Mocha可能比 Jasmine 更容易工作。

最佳答案

虽然 gjstest 看起来很有前途,但您需要在除 OS X 之外的所有设备上重新编译 v8 引擎,这对于通用解决方案来说可能太麻烦了。

Jasmine易于设置。

  1. https://github.com/jasmine/jasmine/releases下载,例如。 https://github.com/jasmine/jasmine/releases/download/v2.5.2/jasmine-standalone-2.5.2.zip
  2. 将此 zip 文件解压缩到单独的目录 f.ex。 插件目录/测试
  3. 修改SpecRunner.html,替换

    <script src="src/Player.js"></script>
    <script src="src/Song.js"></script>

    <script src="path/to/background.js"></script

    并替换

    <script src="spec/SpecHelper.js"></script>
    <script src="spec/PlayerSpec.js"></script>

    <script src="spec/AddonSpec.js"></script>
  4. 创建文件 spec/AddonSpec.js,包含内容

    describe("Addon", function() {
    it("should append hello world", function() {
    let details = {uri: "google.de/q=test"};

    expect(redirect(details)).toEqual(details.uri + "&helloworld");
    });
    });
  5. 在您选择的浏览器中打开文件 SpecRunner.html

关于unit-testing - 单元测试 WebExtensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107432/

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