Jasmine 我的sinon存根没有出现在我的角服务中

Jasmine 我的sinon存根没有出现在我的角服务中,jasmine,sinon,Jasmine,Sinon,我想测试一个角度服务。我有一个常数叫做keys。我试图模拟这个常数,但我继续得到真正的常数。这是我的测试: describe('getSuperheroes()', function() { var mockKeys; beforeEach(function() { mockKeys = sinon.stub({apikey: 'test'}); module(function($provide) { $provide.value('k

我想测试一个角度服务。我有一个常数叫做
keys
。我试图模拟这个常数,但我继续得到真正的常数。这是我的测试:

  describe('getSuperheroes()', function() {
    var mockKeys;
    beforeEach(function() {
      mockKeys = sinon.stub({apikey: 'test'});
      module(function($provide) {
        $provide.value('keys', mockKeys);
      });
    });
    it('should populate superheroes[] with result from get()', inject(function(superheroService, $httpBackend) {
      expect(superheroService.superheroes).toBeNull();
      $httpBackend.when('GET', 'http://gateway.marvel.com/v1/public/characters?apikey=test').respond({
        data: {
          results: 100
        }
      });
      superheroService.getSuperheroes();
      $httpBackend.flush();
      expect(superheroService.superheroes).toBe(100);
    }));
这是我的
模块:

angular.module('marvelApp').constant('keys', {
  apikey: 'vip number'
});
这是我的服务:

angular.module('marvelApp').factory('superheroService', function($resource, $q, keys) {
  return {
    superheroes: null,
    getSuperheroes: function() {
      var deferred = $q.defer();
      var that = this;
      if(this.superheroes) {
        deferred.resolve(that.superheroes);
      } else {
        this.getResource().get({
          apikey: keys.apikey
        }, function(data) {
          that.superheroes = data.data.results;
          deferred.resolve(data.data.results);
        });
      }
      return deferred.promise;
    },
    ...
  };
});

我在测试中犯了什么错误,不允许我模拟
模块。谢谢你的帮助。

问题是我使用了
$provide
提供给我的错误方法。我正在尝试
$provide.value()
,而正确的函数应该是
$provide.constant()
,因为我试图模拟一个常量。简单明了。

请记住选择自己的答案:)