我有这样的工厂
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();
}));
然而,我得到一个错误,说间谍从未被调用过。我想这是某种参考问题。知道为什么我不能窥探从同一工厂的另一个函数调用的工厂函数吗?
答案 0 :(得分:1)
您需要通过callThrough()
跟踪所有来电:
spyOn(Utils, 'one').and.callThrough();
答案 1 :(得分:0)
我可以通过调整工厂来实现它的工作:
angular.module('app').factory('Utils', function () {
var utils = {};
function one() {
}
function two() {
utils.one();
}
utils = {
one: one,
two: two
}
return utils;
});