Ошибки, возникающие при тестировании Mocha, даже с блоком try / catch - PullRequest
0 голосов
/ 01 июня 2018

Я столкнулся с проблемой с Мокко в тот момент, когда мне кажется, что я не могу разобраться или определить путь.

У меня есть функция, которую я тестирую:

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 в этом случае.

Есть ли способ справиться с этим, который я не знаю?

...