У меня есть метод, который может вызвать ошибку, но у меня возникли проблемы с написанием тестового примера SinonJS/Mocha/Should для этого условия.Поймать заброшенные ошибки с SinonJS
функция Образец испытываемого: тест
function testError(value) {
if (!value) {
throw new Error('No value');
return false;
}
};
Пример:
describe('#testError', function() {
it('throws an error', function() {
var spy = sinon.spy(testError);
testError(false);
spy.threw().should.be.true();
});
});
Этот выход:
#testError
1) throws an error
0 passing (11ms)
1 failing
1) #testError throws an error:
Error: No value
at testError (tests/unit/js/test-error.js:6:14)
at Context.<anonymous> (tests/unit/js/test-error.js:14:6)
Я ожидал Sinon поймать ошибку и позвольте мне шпионить бросок, но, похоже, он не прошел тест. Есть идеи?
Я ссылаюсь на Don't sinon.js spys catch errors?, но единственным решением является использование expect
. Я предпочел бы, если это возможно, придерживаться единой библиотеки утверждений.
Спасибо, @nrabinowitz. Похоже, '' 'should.throws''' может быть билетом. См. Мой пересмотренный ответ ниже. – benjarwar