[英]Error handling in mocha unit tests
I have mocha tests. 我有摩卡测试。 I will simplify as possible as I can.
我会尽可能地简化。 I wonder how should I handle the errors in mocha tests.
我想知道如何处理摩卡测试中的错误。 For example, if there is an error in getName, what should I do?
例如,如果getName中存在错误,我该怎么办? How can I throw an error?
我怎么能抛出错误? Or should I use
done(error)
as; 或者我应该使用
done(error)
作为;
it('trial', function(done) {
getName(function (name, err) {
if(err){
done(err); //what should I do here?
}else{
console.log(name);
}
});
});
If done
is called with a argument other than undefined
, the test will fail and be reported as such. 如果使用非
undefined
之外的参数调用done
,则测试将失败并报告为此类。 Other test will still be executed. 其他测试仍将执行。
It allow you to test for success, but also for error: 它允许您测试成功,但也测试错误:
it('succeed', (done) => {
myFunc('success', (err, res) => {
if(err) {
done(err);
} else if(res !== 'expected') {
done('Wrong result ' + res);
} else {
done();
}
});
});
it('fail with error 404', (done) => {
myFunc('fail', (err, res) => {
if(err) {
if(err === 404) {
done();
} else {
done('Error was expected to be 404, got ' + err);
}
} else {
done('Was expected to fail, got result ' + res + ' and no error');
}
});
});
it('succeed', (done) => {
try {
var res = myFuncSync('succeed');
} catch(err) {
done(err);
}
done();
});
it('fail with error 404', (done) => {
try {
var res = myFuncSync('succeed');
} catch(err) {
if(err === 404) {
done();
} else {
done('Error was expected to be 404, got ' + err);
}
}
done('Was expected to fail, got result ' + res + ' and no error');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.