因此,QUnit提供“raise”断言来测试是否抛出异常。有没有办法测试异常引发的实际消息?例如,假设我有这个功能:
throwError = function(arg) {
var err = new Error();
if (typeof arg === 'undefined') {
err.message = 'missing parameter';
throw err;
}
}
我希望能够按照以下方式写一些内容:
raises(
function(){throwError();},
Error.message,
'missing arg'
);
理想情况下,此测试会失败,因为异常消息是“缺少参数”,我希望它“缺少arg”,但它会通过,因为qunit只会检查是否引发了错误。有什么方法可以检查抛出异常的实际内容?
答案 0 :(得分:18)
我找到答案,发布在这里以防其他人认为有用。鉴于此功能:
throwError = function(arg) {
var err = new Error();
if (typeof arg === 'undefined') {
err.message = 'missing parameter';
throw err;
}
}
测试看起来像这样:
raises(
function(){
throwError();
},
function(err) {
return err.message === 'missing arg';
},
'optional - label for output here'
);