Ответ 1
Jasmine предоставляет глобальный метод fail()
, который можно использовать внутри блоков spec it()
, а также позволяет использовать собственное сообщение об ошибке:
it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
fail('Unwanted code branch');
});
});
Это встроенная функциональность Jasmine, и она отлично работает везде по сравнению с методом "ошибки", о котором я говорил ниже.
Перед обновлением:
Вы можете выбросить ошибку из этой ветки кода, она сразу же отключит спецификацию, и вы сможете предоставить настраиваемое сообщение об ошибке:
it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
throw new Error('Unwanted code branch');
});
});
Но вы должны быть осторожны, если хотите выбросить ошибку из обработчика успеха Promise then()
, потому что ошибка будет проглочена там и никогда не появится. Также вы должны знать о возможных обработчиках ошибок в вашем приложении, которые могут уловить эту ошибку внутри вашего приложения, поэтому результат не сможет выполнить проверку.