Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t模拟调用另一个工厂方法的工厂方法_Javascript_Angularjs_Testing_Jasmine_Factory - Fatal编程技术网

Javascript Can';t模拟调用另一个工厂方法的工厂方法

Javascript Can';t模拟调用另一个工厂方法的工厂方法,javascript,angularjs,testing,jasmine,factory,Javascript,Angularjs,Testing,Jasmine,Factory,我有一个这样的工厂 angular.module('app') .factory('Utils', function () { function one() { } function two() { one(); } return { one: one, two: two }); }); 在茉莉花规范中,我尝试做如下操作: it('should verify', inject(function(Utils) { spyOn(

我有一个这样的工厂

angular.module('app')
.factory('Utils', function () {
   function one() {
   }

   function two() {
     one();
   }

   return {
     one: one,
     two: two
 });
});
在茉莉花规范中,我尝试做如下操作:

it('should verify', inject(function(Utils) {
  spyOn(Utils, 'one');
  Utils.two();
  expect(Utils.one).toHaveBeenCalled();
}));

然而,我得到一个错误,说间谍从未被呼叫。我想这是某种参考问题。知道为什么我不能监视从同一工厂的另一个函数调用的工厂函数吗?

您需要通过以下方式跟踪所有调用:


我通过调整工厂使其工作如下:

angular.module('app').factory('Utils', function () {
var utils = {};

function one() {
}

function two() {
 utils.one();
}

utils = {
 one: one,
 two: two
}

return utils;
});
angular.module('app').factory('Utils', function () {
var utils = {};

function one() {
}

function two() {
 utils.one();
}

utils = {
 one: one,
 two: two
}

return utils;
});