将模拟注入AngularJS服务

将模拟注入AngularJS服务,第1张

模拟注入AngularJS服务

您可以使用来将模拟注入到您的服务中

$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的过程中。在此处设置嘲讽依赖时,它可能就很容易成为间谍。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5640989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存