如何在 angular 单元测试中测试第三方库函数

How to test Third party library functions in angular unit testing

我正在使用 angular 单元测试和 karma 和 jasmine 测试 angular 服务。 在我的服务中,我使用了 sprintf-js 模块的 sprintf() 来获取生成的字符串。现在,当我尝试测试服务时,它给出了 error sprintf not defined

代码是这样的:

myservice.js

abc(a,b){
var url = sprintf(a,b);
ajax.get(url);
}

myservice.spec.js : 我已经在这个文件中注入了 myservice 并使用了它 -

myservice.abc(dummya, dummyb);

$rootScope.$appy();

expect(myservice.abc).toHaveBeenCalled();

Any help appreciated .

为了使第三方库在当前测试中正常运行,请将它们添加为服务的依赖项。

angular.module('my-defined-module-name').constant('sprintf',window.sprintf)

angular.service('my-service',['sprintf',function(sprintf){

}])