У меня есть функция im, пытающаяся проверить:
vm.clearArray = function(){
for (var id=0; id<vm.copyArray.length;id++){
vm.styleIcon(vm.copyArray[id],'black')
}
vm.copyObjArray = [];
vm.copyArray = [];
}
Я пытаюсь проверить это как:
it('should have cleared copyArray on function call', function(){
var ctrl = $componentController('copy', null);
spyOn(ctrl, 'clearArray').and.callThrough();
spyOn(ctrl, 'styleIcon').and.callThrough();
ctrl.copyArray = [123];
ctrl.clearArray();
expect(ctrl.clearArray).toHaveBeenCalled();
// expect(ctrl.styleIcon).toHaveBeenCalled();
expect(ctrl.copyObjArray).toEqual([]);
expect(ctrl.copyArray).toEqual([]);
});
Если я раскомментирую вышеизложенное, я получаю сообщение об ошибке, и вызов vm.styleIcon никогда не рассматривается в моем отчете о покрытии. Установив copyArray для хранения значения в массиве, я подумал бы, что цикл for будет запускаться при запуске теста. Кажется, это не так.
Благодарю.