assert.throws()
添加的版本:1.0.0
说明
throws( blockFn, message = "" )
throws( blockFn, expectedMatcher, message = "" )
测试回调是否抛出异常,并可选择比较抛出的错误。
名字 | 说明 |
---|---|
blockFn (函数) |
要执行的函数 |
expectedMatcher |
预期的错误匹配器 |
message (字符串) |
断言的简短说明 |
在测试预期会根据一组特定情况引发异常的代码时,请使用 assert.throws()
捕获错误对象以进行测试和比较。
expectedMatcher
参数可以是:
- 错误对象
- 使用 ala
errorValue instanceof expectedMatcher
的错误构造函数 - 匹配(或部分匹配)字符串表示的 RegExp
- 必须返回
true
以通过断言检查的回调函数。
在极少数环境中,例如 Closure Compiler,throws
可能会导致错误。在那里你可以使用 assert.raises()
。它具有相同的签名和行为,只是名称不同。
变更日志
QUnit 2.12 | 添加了对箭头函数的支持作为expectedMatcher 回调函数。 |
QUnit 1.9 | assert.raises() 改名为assert.throws() .assert.raises() 方法仍然支持作为别名。 |
例子
QUnit.test('throws example', assert => {
// simple check
assert.throws(function () {
throw new Error('boo');
});
// simple check
assert.throws(
function () {
throw new Error('boo');
},
'optional description here'
);
// match pattern on actual error
assert.throws(
function () {
throw new Error('some error');
},
/some error/,
'optional description here'
);
// using a custom error constructor
function CustomError (message) {
this.message = message;
}
CustomError.prototype.toString = function () {
return this.message;
};
// actual error is an instance of the expected constructor
assert.throws(
function () {
throw new CustomError('some error');
},
CustomError
);
// actual error has strictly equal `constructor`, `name` and `message` properties
// of the expected error object
assert.throws(
function () {
throw new CustomError('some error');
},
new CustomError('some error')
);
// custom validation arrow function
assert.throws(
function () {
throw new CustomError('some error');
},
(err) => err.toString() === 'some error'
);
// custom validation function
assert.throws(
function () {
throw new CustomError('some error');
},
function (err) {
return err.toString() === 'some error';
}
);
});
相关用法
- JavaScript assert.timeout()用法及代码示例
- JavaScript assert.true()用法及代码示例
- JavaScript assert.expect()用法及代码示例
- JavaScript assert.rejects()用法及代码示例
- JavaScript assert.propContains()用法及代码示例
- JavaScript assert.notPropContains()用法及代码示例
- JavaScript assert.deepEqual()用法及代码示例
- JavaScript assert.propEqual()用法及代码示例
- JavaScript assert.notDeepEqual()用法及代码示例
- JavaScript assert.pushResult()用法及代码示例
- JavaScript assert.notPropEqual()用法及代码示例
- JavaScript assert.async()用法及代码示例
- JavaScript assert.strictEqual()用法及代码示例
- JavaScript assert.notEqual()用法及代码示例
- JavaScript assert.notOk()用法及代码示例
- JavaScript assert.equal()用法及代码示例
- JavaScript assert.verifySteps()用法及代码示例
- JavaScript assert.false()用法及代码示例
- JavaScript assert.ok()用法及代码示例
- JavaScript assert.notStrictEqual()用法及代码示例
- JavaScript assert.step()用法及代码示例
- JavaScript array.length属性用法及代码示例
- JavaScript esri/layers/OpenStreetMapLayer.minScale用法及代码示例
- JavaScript esri/layers/KMLLayer.maxScale用法及代码示例
- JavaScript esri/widgets/Histogram.labelFormatFunction用法及代码示例
注:本文由纯净天空筛选整理自qunitjs.com大神的英文原创作品 assert.throws()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。