Я пишу простые модульные тесты с sinon.JS. Тестируемый код имеет некоторую проверку типов, которая выдает TypeError:
Tx = class Tx {
constructor(date) {
if (!(date instanceof Date)) throw new TypeError();
this.date = date;
}
}
В моем test.js я использую sinon, чтобы проверить, что создание экземпляра Tx завершается ошибкой, когда аргумент не является датой:
describe('Tx', function() {
describe('#constructor', function() {
it('should fail when not passed a date as 1st param', function() {
var txSpy = sinon.spy(Tx.constructor);
try {
tx = new Tx(true);
} catch (e) {
// test success
console.log('Error: '+e)
}
}
}
}
result = txSpy.threw(new TypeError());
assert(result);
Утверждение не выполняется, несмотря на то, что вывод catch "Ошибка: TypeError"; Тот же результат возникает при передаче строкового описания типа ошибки (например, «TypeError», согласно синон API).
Любые подсказки? Заранее спасибо :)