您可以使用来将模拟注入到您的服务中
$provide。
如果您具有以下具有依赖项的服务,该服务具有名为getSomething的方法:
angular.module('myModule', []) .factory('myService', function (myDependency) { return { useDependency: function () { return myDependency.getSomething(); } }; });
您可以按如下方式注入myDependency的模拟版本:
describe('Service: myService', function () { var mockDependency; beforeEach(module('myModule')); beforeEach(function () { mockDependency = { getSomething: function () { return 'mockReturnValue'; } }; module(function ($provide) { $provide.value('myDependency', mockDependency); }); }); it('should return value from mock dependency', inject(function (myService) { expect(myService.useDependency()).toBe('mockReturnValue'); }));});
请注意,由于有调用,
$provide.value因此实际上不需要在任何地方显式注入myDependency。它发生在注入myService的过程中。在此处设置嘲讽依赖时,它可能就很容易成为间谍。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)