即使使用try / catch块,错误也会冒泡到Mocha测试

时间:2018-06-01 14:50:39

标签: json node.js mocha bdd assert

我现在面临着与摩卡有关的问题,我似乎无法弄清楚或决定一条路。

我有一个我正在测试的功能:

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);
    });
});

我希望测试应该通过,因为我在toJSON函数中有一个try / catch块,它返回false。我看到的问题是来自JSON.parse的抛出错误正在冒泡到Mocha并且未通过测试。

如果我将代码包装在it函数内的try / catch中,它将通过,但由于抛出错误,assert永远不会到达,我无法放置{{1因为结果将是未定义的(即使在try / catch之外定义),也会进入catch块。

我尝试过几种不同的组合,但在这种情况下无法测试返回值实际为assert

有没有办法处理这个我不知道的事情?

0 个答案:

没有答案