我现在面临着与摩卡有关的问题,我似乎无法弄清楚或决定一条路。
我有一个我正在测试的功能:
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
。
有没有办法处理这个我不知道的事情?