Я столкнулся с проблемой с Мокко в тот момент, когда мне кажется, что я не могу разобраться или определить путь.
У меня есть функция, которую я тестирую:
function toJSON(json) {
try {
return JSON.parse(json);
} catch(err) {
return false;
}
}
Тогда у меня есть этот тест:
describe('example test', () => {
it('should return false with invalid json` () => {
let result = toJSON('invalid json');
assert.equal(result, false);
});
});
Я ожидаю, что тест должен пройти, так как у меня есть блок try / catch в функции toJSON
, и он возвращает false
.Проблема, с которой я сталкиваюсь, заключается в том, что сгенерированная ошибка JSON.parse
переходит в Mocha и не проходит тест.
Если я оберну код в try / catch внутри функции it
, он будетпройти, но поскольку выдается ошибка, assert
никогда не достигается, и я не могу поместить assert
в блок catch, так как результат будет неопределенным (даже с определением вне try / catch).
Я пробовал несколько разных комбинаций, но не смог проверить, что возвращаемое значение на самом деле false
в этом случае.
Есть ли способ справиться с этим, который я не знаю?