Документация по тестированию Angular показывает тестовый пример, где $apply вызывается до тестовые утверждения. Я пытался сделать то же самое, но мой тест не работает должным образом. Первый код, который должен сломаться, работает... кажется, что мое утверждение не выполняется. Второй код, мой тест работает, но он отличается от документации (стиль которой мне больше нравится).
Первый:
it('tests angular promises', function() {
getABC = function() {
return $q((resolve, reject) => {
resolve('abc');
});
};
var state = getABC()
$rootScope.$apply()
// assertions come after $apply call as in documentation: doesn't work.
state.should.eventually.be.equal('abcc')
})
------
✓ tests angular promises
1 passing (78ms)
Второй
it('tests angular promises', function() {
getABC = function() {
return $q((resolve, reject) => {
resolve('abc');
});
};
var state = getABC()
state.should.eventually.be.equal('abcc')
// assertions come before $apply call: works
$rootScope.$apply()
})
------
1 failing
1) tests angular promises:
AssertionError: expected 'abc' to equal 'abcc'
+ expected - actual
-abc
+abcc