小编Har*_*ddy的帖子

如何使用 JEST 框架模拟 chrome API?

我想使用 jest 框架模拟 chrome api。例如,我使用chrome.browserAction.setIcon向后台脚本发送消息。我如何模拟chrome.browserAction.setIcon或任何其他 api,例如chrome.runtime.sendMessage测试该方法是否已被调用?

我曾尝试使用 jest.spyOn() 来测试该方法是否已被调用。

下面是测试方法

 test("mock testing chrome",()=>{
     spyOn(chrome,
          chrome.browserAction.setIcon);
     content.chromemocktest();
     expect(spy).toHaveBeenCalledWith({path:"/images.png"});
 });
Run Code Online (Sandbox Code Playgroud)

我正在测试的方法是:

 chromemocktest: function(){
     chrome.browserAction.setIcon({path:"/image.png"});

 }    
Run Code Online (Sandbox Code Playgroud)

当我运行npm run testfor running 测试用例时,它抛出一个错误,如下所示。

 <spyOn> : stub() method does not exist
 Usage: spyOn(<object>, <methodName>)
Run Code Online (Sandbox Code Playgroud)

unit-testing google-chrome-extension jestjs

5
推荐指数
1
解决办法
1222
查看次数