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;
});