Node.jsのassert.rejects()関数
アサートモジュールは、関数アサーションに使用されるさまざまな機能を提供します。 assert.rejects関数は、渡された非同期関数'asyncfn'promiseを待ちます。 asyncfnが関数の場合、すぐにこの関数を呼び出し、返されたpromiseが完了するのを待ちます。次に、拒否されるという約束を確認します。
構文
assert.rejects(asyncfn, [error], [message])
パラメータ
上記のパラメータは以下のように記述されます-
-
値 –これは同期的にエラーをスローする非同期関数です。
-
エラー –このパラメーターは、クラス、正規表現、検証関数、または各プロパティがテストされるオブジェクトを保持できます。 (オプションのパラメータ)
-
メッセージ –これはオプションのパラメーターです。これは、関数の実行時に出力されるユーザー定義のメッセージです。
アサートモジュールのインストール
npm install assert
assertモジュールは組み込みのNode.jsモジュールであるため、この手順をスキップすることもできます。次のコマンドを使用してアサートバージョンを確認し、最新のアサートモジュールを取得できます。
npm version assert
関数にモジュールをインポートする
const assert = require("assert").strict;
例
– assertRejects.jsという名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、以下のコマンドを使用してこのコードを実行します。
node assertRejects.js
assertRejects.js
/// Importing the module const assert = require('assert').strict; (async () => { assert.strictEqual(21,20) await assert.rejects( async () => { throw new TypeError('Value passed is Incorrect !'); }, (err) => { assert.strictEqual(err.name, 'TypeError'); assert.strictEqual(err.message, 'Incorrect value'); return true; } ).then(() => { console.log("This is a reject demp") }); })();
出力
C:\home\node>> node assertRejects.js (node:259525) UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B: + expected - actual - 21 + 20 at /home/node/test/assert.js:5:9 at Object. (/home/node/test/assert.js:18:3) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3) (node:259525) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:259525) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
例
もう1つの例を見てみましょう。
// Importing the module const assert = require('assert').strict; (async () => { assert.strictEqual(21,21) await assert.rejects( async () => { throw new TypeError('Value passed is Incorrect !'); }, (err) => { assert.strictEqual(err.name, 'TypeError'); assert.strictEqual(err.message, 'Value passed is Incorrect !'); return true; } ).then(() => { console.log("This is a reject demo success") }); })();
出力
C:\home\node>> node assertRejects.js This is a reject demo success
-
JavaScriptの関数プロトタイプ
JavaScriptで作成された関数には、JavaScriptエンジンによって追加されたプロトタイププロパティが常にあります。プロトタイププロパティは、デフォルトでコンストラクタプロパティを含むオブジェクトです。関数protoypeには、-からアクセスできます。 functionName.prototype オブジェクトが関数コンストラクターを使用して作成されている場合、このプロトタイププロパティを使用して、その関数コンストラクターによって作成されたオブジェクト間でメソッドまたはプロパティを共有できます。 以下は、JavaScriptの関数プロトタイプのコードです- 例 <!DOCT
-
JavaScriptでの関数の借用。
call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &