assert 모듈은 assert 함수 뿐 아니라 다른 방식으로 유효성을 검사하는 함수를 지원한다.
equal 함수와 strictEqual 함수, notEqual 함수와 notStrictEqual 함수이다.
-
equal : 어떤 두개의 변수나 조건식의 결과 값이 다를 경우 오류 발생, 값의 타입은 무시
-
strictEqual : 어떤 두개의 변수나 조건식의 결과 값이 다를 경우 오류 발생, 값의 타입까지 검사
-
notEqual : 어떤 두개의 변수나 조건식의 결과 값이 같을 경우 오류 발생, 값의 타입은 무시
-
notStrictEqual : 어떤 두개의 변수나 조건식의 결과 값이 같을 경우 오류 발생, 값의 타입까지 검사
말로 설명하는 것 보다는 예제 소스를 보는게 훨씬 이해가 쉬울 것이다.
var assert = require("assert");
/*
equal 함수는 두 변수나 조건식의 결과가 다를 경우 오류를 발생시킨다.
*/
var a = 10;
var b = 10;
var c = 30;
assert.equal(a, b);
console.log("a와 b는 같다");
assert.equal(a, c);
console.log("a와 c는 같다.");
이 소스코드를 실행시켜보면 아래 그림과 같이 출력된다.
a와 b를 비교한 코드는 정상적으로 작동했고
a와 c를 비교한 코드에서는 에러가 발생했다.
equal 함수는 값의 타입까지 비교하지는 않는다고 했다. 다음 예제를 보자.
var assert = require("assert");
/*
equal 함수는 두 변수나 조건식의 결과가 다를 경우 오류를 발생시킨다.
*/
var a = 10;
var b = 10;
var c = 30;
var d = '10'; // 문자열 타입의 변수 추가
assert.equal(a, d); // a는 정수형 10이고, d는 문자열 10이다.
console.log("a와 d는 같다");
이 소스를 실행해보면 아래와 같은 결과가 출력된다.
a는 정수형이고 d는 문자열 형태의 변수이지만 equal 함수는 두 변수의 값만 볼 뿐,
자료형은 비교하지 않기 때문에 오류를 발생시키지 않고 정상적으로 다음 코드를 실행한다.
그 다음은 strictEqual 함수를 사용해서 비교해보자.
var assert = require("assert");
/*
equal 함수는 두 변수나 조건식의 결과가 다를 경우 오류를 발생시킨다.
*/
var a = 10;
var b = 10;
var c = 30;
var d = '10'; // 문자열 타입의 변수 추가
assert.equal(a, d); // a는 정수형 10이고, d는 문자열 10이다.
console.log("a와 d는 같다");
assert.strictEqual(a, d);
console.log("a와 d는 같다");
strictEqual 함수는 변수의 값 뿐 아니라 자료형까지 함께 비교를 하기 때문에
값은 같을지라도 자료형이 다르면 다른 값이라고 판단하여 오류를 발생시킨다.
만약 node.js 프로젝트를 수행하면서 위 함수를 써야 한다면 둘 중에 뭐를 쓰고 싶을까?
equal 함수보다는 자료형까지 함께 비교해주는 strictEqual 함수를 사용할 것 같다.
참고로 equal 함수는 향후 지원을 중단할 예정이라고 한다. strictEqual 함수만 살아남는다.
notEqual, notStrictEqual 함수는? equal과 strictEqual의 반대 개념이기 때문에
별도의 예제를 다루지는 않을 것이다.
'코딩노트 > node.js' 카테고리의 다른 글
[node.js] node.js 개발환경 버전별 관리 방법 (0) | 2020.05.23 |
---|---|
[node.js] node.js에서 DLL 불러오기(ffi 모듈) #1 (0) | 2020.05.22 |
[node.js] 데이터나 조건의 유효성을 검사해주는 assert 모듈 #1(assert 함수) (0) | 2020.05.07 |
[node.js] WebStorm으로 프로젝트 생성부터 hello world 출력까지 (0) | 2020.05.04 |
[node.js] WebStorm 플러그인 정리 (0) | 2020.04.30 |
이 글을 공유하기