Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

Node.js assert.notEqual() 함수 사용법과 예제 총정리

Node.js의 assert 모듈은 함수 검증(assertion)을 위한 다양한 기능을 제공합니다. 그중 assert.notEqual() 함수는 두 값이 서로 같지 않은지를 검사하는 메서드로, 실제 값(actual)과 기대값(expected)이 동일할 경우 AssertionError를 발생시킵니다.

문법(Syntax)

assert.notEqual(actual, expected, [message])

매개변수(Parameters)

  • actual – 비교 대상이 되는 실제 값을 담는 매개변수입니다.

  • expected – actual 값과 비교할 기대값을 담는 매개변수입니다.

  • message – 선택 사항(optional) 매개변수로, 함수 실행 시 출력될 사용자 정의 메시지를 지정합니다.

Assert 모듈 설치하기

npm install assert

assert 모듈은 Node.js에 내장된 모듈이므로 별도 설치 없이 바로 사용할 수 있습니다. 최신 버전의 assert 모듈을 확인하려면 아래 명령어를 사용하세요.

npm version assert

모듈 불러오기

const assert = require("assert").strict;

예제 1: 두 값이 같지 않은 경우

notEqual.js라는 이름의 파일을 생성하고 아래 코드를 작성한 뒤, 다음 명령어로 실행해 보세요.

node notEqual.js
// 모듈 불러오기
const assert = require('assert').strict;

var a = 3;
var b = "3";

try {
    // a와 b가 같은지 검사
    assert.notEqual(a, b)
    console.log("a와 b는 같지 않습니다")
} catch(error) {
    console.log("에러 발생: ", error)
}

실행 결과

C:\home\node>> node notEqual.js
a와 b는 같지 않습니다

위 예제에서 숫자 3과 문자열 "3"은 타입이 다르므로 느슨한 비교(==) 기준으로도 같지 않다고 판단되어 에러 없이 통과합니다.

예제 2: 두 값이 같은 경우

이번에는 두 값이 동일한 경우 어떻게 동작하는지 살펴보겠습니다.

// 모듈 불러오기
const assert = require('assert').strict;

var a = 3;
var b = 3;

try {
    // a와 b가 같은지 검사
    assert.notEqual(a, b)
    console.log("a와 b는 같지 않습니다")
} catch(error) {
    console.log("에러 발생: ", error)
}

실행 결과

C:\home\node>> node notEqual.js
Error Occured: { AssertionError [ERR_ASSERTION]: Identical input passed to
notStrictEqual: 3
        at Object.<anonymous> (/home/node/test/assert.js:10:9)
        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)
generatedMessage: true,
name: 'AssertionError [ERR_ASSERTION]',
code: 'ERR_ASSERTION',
actual: 3,
expected: 3,
operator: 'notStrictEqual' }

두 값이 모두 3으로 동일하기 때문에 notStrictEqual 연산자 검증에 실패하며 AssertionError [ERR_ASSERTION]이 발생하는 것을 확인할 수 있습니다.

정리

assert.notEqual()은 두 값이 같지 않음을 보장해야 하는 테스트 상황에서 유용하게 사용됩니다. 값이 서로 다르면 아무 일도 일어나지 않고(검증 통과), 값이 같으면 AssertionError를 던져 개발자에게 문제를 알려줍니다. 참고로 이 함수는 느슨한 비교(loose comparison)를 수행하므로, 타입까지 엄격하게 검사하려면 assert.notDeepStrictEqual() 또는 strict 모드를 활용하는 것이 좋습니다.