Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Node.js의 assert.rejects() 함수

<시간/>

assert 모듈은 기능 주장에 사용되는 다양한 기능을 제공합니다. assert.rejects 함수는 전달된 비동기 함수 'asyncfn' 약속을 기다립니다. asyncfn이 함수이면 즉시 이 함수를 호출하고 반환된 약속이 완료될 때까지 기다립니다. 그런 다음 해당 약속이 거부되는지 확인합니다.

구문

assert.rejects(asyncfn, [error], [message])

매개변수

위의 매개변수는 다음과 같이 설명됩니다 -

  • 가치 – 이것은 동기적으로 오류를 발생시키는 비동기 함수입니다.

  • 오류 – 이 매개변수는 클래스, 정규식, 유효성 검사 기능 또는 각 속성을 테스트할 개체를 포함할 수 있습니다. (선택적 매개변수)

  • 메시지 – 이것은 선택적 매개변수입니다. 함수 실행 시 출력되는 사용자 정의 메시지입니다.

Assert 모듈 설치

npm install assert

assert 모듈은 내장된 Node.js 모듈이므로 이 단계도 건너뛸 수 있습니다. 최신 assert 모듈을 얻으려면 다음 명령을 사용하여 assert 버전을 확인할 수 있습니다.

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.

예시

예를 하나 더 살펴보겠습니다.

// 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