【发布时间】:2016-10-18 17:23:42
【问题描述】:
我知道直接在 unitTests 中调用私有函数不是一个好习惯,我们必须通过公共方法测试私有代码。
我的情况是,我不知道该怎么做才能实现我想要的。我想知道是否从我的时间间隔调用了回调函数。这是在角度控制器中实现的。
function prepareInterval() {
self.callbacksData = [];
if(self.DynamicValuesList !== null) {
self.myPromise = $interval(callbackFunction, userInputInterval * 1000);
}
}
我的回调函数只显示来自回调函数的数据。如果该回调函数已被调用,我想进行 unitTest,但我不能。
我试过https://makandracards.com/makandra/32477-testing-settimeout-and-setinterval-with-jasmine
it('myUnitTest', function(){
//Prepare data
var controller = createController();
spyOn(controller, 'callbackFunction');
expect(controller.callbackFunction).not.toHaveBeenCalled();
});
我得到的错误是。
callbackFunction() 方法不存在
编辑:顺便说一下,我在 beforeEach 函数中注入了角度模拟
【问题讨论】:
-
所以回调函数是私有的?
-
@Randy 完全正确。该 callbackFunction 未在我的 self 对象中定义,因为结果未公开。我想检查是否调用了该私有函数。
标签: javascript angularjs jasmine