Похоже, что мой interval
никогда не запускается.
У меня есть директива, которая содержит $interval
, и я хочу ее протестировать. Я удалил весь код, связанный с директивой, и добавил его в свой контроллер:
window.called = 0;
window.interval = $interval(function () {
window.called++;
console.log('interval ' + window.called); // 4
}, 10);
console.log('initialized'); // 1
Тест выглядит следующим образом:
describe('myDirective', function () {
beforeEach(module('myModule'));
beforeEach(function($compile, $rootScope) {
/* ... compile element in its own scope ... */
});
it('should run the interval', function () {
console.log(window.interval); // 2
waitsFor(function () {
console.log('tick'); // 3
return false;
}, 1000);
});
});
Это глупый тест. Метод waitsFor
фактически возвращает false все время для целей отладки. Но это все, что я вижу на консоли:
initialized // 1
Object: {then: ..} // 2
tick // 3
tick // 3
tick // 3
tick // 3
..
и, в конечном счете, сбой теста. Я никогда не вижу ни одного interval
в журналах. Что-то не так с моим кодом вообще или есть что-то особенное для Jasmine/PhantomJS, которое мне не хватает?