assert.throws()
追加されたバージョン: 1.0.0.
説明
throws( blockFn, message = "" )
throws( blockFn, expectedMatcher, message = "" )
コールバックで例外がスローされるかどうかをテストし、スローされたエラーを比較します。
名前 | 説明 |
---|---|
blockFn (関数) |
実行する関数 |
expectedMatcher |
エラーの想定する照合 |
message (文字列) |
アサーションの簡単な説明 |
特定の状況に基づいて例外がスローされると予想されるコードをテストする場合、assert.throws()
を使用して、テストと比較するためのエラーオブジェクトをキャッチします。
expectedMatcher
引数は以下のとおりです
- エラーオブジェクト
- ala
errorValue instanceof expectedMatcher
を使用するErrorコンストラクタ - 文字列表現と一致する(または部分的に一致する)正規表現
- アサーションチェックに合格するために
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';
}
);
});