[Jest] node.js 테스트 프레임워크

2023. 3. 1. 20:59공부 중/Node.js

 

1. node.js 테스트 프레임워크

 

Node.js에서 가장 많이 사용되는 테스트 프레임워크는 Jest와 Mocha입니다.

 

다음은 많이 사용되는 순서대로 소개하겠습니다.

 

 


2. Jest vs Mocha

 

다음은 Jest와 Mocha의 유저 수를 비교한 표입니다.

 

 

두 프레임워크 모두 우수한 기능과 성능을 제공하며, 개발자들 사이에서 많은 인기를 얻고 있습니다.

 

프로젝트의 특성과 개발자의 선호도를 고려해서 선택합니다.

 

다음은 Mocha와 Jest의 장단점을 비교한 표입니다.

 

 

Mocha와 Jest 모두 테스트를 작성하고 실행하기 쉽고, 다양한 assertion 라이브러리를 지원합니다.

 

Mocha는 API와 플러그인이 다양하게 제공되어 유연한 테스트 설정을 제공하며, 브라우저 테스트를 지원합니다.

 

반면에 Jest는 스냅샷 테스트, mocking 등의 기능을 제공하며, 자동으로 코드 커버리지를 계산합니다.

 

또한 Jest는 별도의 설정이 필요하지 않아 간단하게 사용할 수 있지만, 기본 설정 값이 자주 변경될 수 있다는 단점이 있습니다.

 

Mocha는 사용자 경험이 상대적으로 적지만, 다양한 기능을 제공하며, 테스트 시간이 길어질 수 있습니다.

 

또한 일부 기능의 문서화가 미흡하다는 단점이 있습니다.

 


3. Jest

 

가. Jest를 선택한 이유

 

아무래도 테스트 자체를 처음 배우는 입장에서 문서화가 잘 되어있고 조금이라도 사용자가 많고 자료가 많은 것이 중요했다.

 

또한 테스트 코드의 작성과 실행이 더 쉽다는 점이 끌렸다.

 


나. 사용법

 

Node.js에서 Jest를 사용해서 테스트하는 방법은 다음과 같습니다.

 

1. 먼저, Jest를 설치합니다.

# npm init <- package.json 파일이 없다면 
npm install --save-dev jest

package.json 파일의 scripts 항목에 다음과 같이 추가한다.

"scripts": {
  "test": "jest"
}

 

 

2. 테스트할 파일을 만듭니다. 예를 들어, fn.js 파일을 테스트한다면, 다음과 같이 코드를 작성합니다.

function sum(a, b) {
  return a + b;
}
module.exports = sum

 

 

 

3. 테스트 파일을 만듭니다. 예를 들어, fn.test.js 파일을 만든다면, 다음과 같이 코드를 작성합니다.

const sum = require('./fn.js');

test('add 1 + 2 to equal 3', () => {
    expect(sum(1,2)).toBe(3);
});

test('add 3 + 3 not to equal 7',() => {
	expect(sum(3,3)).not.toBe(7
});

 

4. Jest를 실행합니다.

npm test

실행 결과는 다음과 같습니다.

PASS  ./fn.test.js
  ✓ add 1 + 2 to equal 3 (1 ms)
  ✓ add 3 + 3 not to equal 7

테스트가 통과하면 PASS가 출력되고, 실패하면 FAIL이 출력됩니다.

 


참고 : https://youtu.be/g4MdUjxA-S4

출처 : noton ai :)

'공부 중 > Node.js' 카테고리의 다른 글

[Jest] Testing Asynchronous Code  (0) 2023.03.01
[Jest] Matcher  (0) 2023.03.01
[Javascript] Promise  (0) 2023.03.01
2023-02-19 node.js_17  (0) 2023.02.19
2023-02-18 node.js_16  (0) 2023.02.18