Ошибка при тестировании функции, называемой $ интервалом.
В двух словах:
angular.module('services', [])
.factory('someFactory', [function() {
function someFunction() { console.log('someFunction called'); }
$interval(someFunction, 100);
return {
someFunction: someFunction
}
}]);
describe('someFactory', function() {
it('should call someFunction', function() {
spyOn(someFactory, 'someFunction');
$interval.flush(150);
// someFactory.someFunction() // will pass when uncommented
expect(someFactory.someFunction).toHaveBeenCalled(); // FAIL
);
});
В обоих случаях «SomeFunction называется» вошел в консоль, так что промывка вызова функции, но шпион не может видеть его, когда функция применяется $ interval.
Угловая 1,2 и Жасмин 1,3
Спасибо!
Можете ли вы добавить какой-либо относящийся к каждому из них код установки выше? Похож на проблему с объемом/инъекцией, но не может сказать только что выше. Если вы закомментируете линию флеша, консоль все еще показывает строку журнала? – ktharsis
См: http://plnkr.co/edit/7DAQuShNNSWEe9BWe1vQ?p=info С благодарностью полезным человеком в IRC канал – Caspar
обновленный plunker: http://plnkr.co/edit/84HCKOA0Sfyb9SKXAUnk – Caspar