JEST 란?
- Jest란 코드가 제대로 동작하는지 확인하는 Test Case 를 만드는 페이스북이 개발한 'JS 테스팅 프레임워크'이다.
추가적인 정보에 대해서 조사하고 수정하자 !!
How To Use Jest ?
참고자료 https://www.daleseo.com/jest-basic/
- 프로젝트 생성
- 프로젝트 디렉터리를 생성하고 NPM 초기화 커맨드로 package.jso 파일을 생성한다.
$ mkdir my-jest
$ npm init -y
$ ls
package.json
- Jest 라이브러리 설치
- Jest 라이브러를 개발 의존성으로 설치한다.
- 개발 의존성으로 설치하는 것은 package.json 안에 dependencies가 아닌 devDependencies에 저장된다. devDependencies는 개발 시 사용하는 패키지를 설치하는 곳으로 배포시에는 포함되지 않는다.
$ npm i -D jest
- test Script 수정
- package.json 파일에서 test Script를 jest로 수정해준다.
"scripts": {
"test": "jest"
},
- 이렇게 수정해줌으로써 터미널에 npm test 입력시 jest 커맨드를 실행할 수 있다.
단일 파일 test 하기
- npm test로 jest를 실행하게 되면 .test.js 로 끝나는 모든 파일을 테스트한다.
- 단일 파일만 테스트 하기 위해서는 jest-cli 를 추가로 설치해야 한다.
npm i -g jest-cli
- 위의 jest-cli를 설치한 이후 아래와 같이 단일 파일에 대한 Jest Test를 진행할 수 있다.
jest 파일명.test.js
테스트 기초 방법
- Jest를 이용해 Test하는 기초적인 방법에 대해서 작성해보려고 한다.
- 자세한 테스트 방법들은 기초로 연습하며 익숙해 진 후 추가로 작성하고자 한다.
let temp;
describe("simple test", () => {
beforeEach(() => {
temp = 1;
});
afterEach(() => {
temp = 0;
});
test('1 is 1', () => {
expect(1).toBe(1);
});
test('[1,2,3] is [1,2,3]', () => {
expect([1,2,3]).toEqual(1);
});
})
-
describe
- Test 단위를 묶는 가장 큰 단위로 테스트시 describe 에 설명된 내용으로 테스트 단위를 크게 분류한다.
-
test, it
- test(), it()을 통해 기본 테스트를 진행한다. 두 방법의 기능적 차이는 없다 !
-
expect
- expect() 안에 테스트 할 변수나 값을 넣어준다. 이후 toBe나 toEqual을 이용해 예측값과 비교한다.
-
toBe, toEqual
- 결과 예측으로 가장 많이 쓰이는 문법으로 toBe는 단순비교, toEqual은 배열이나 객체 내부 깊은 비교를 수행한다.
-
beforeEach, afterEach
- beforeEach는 test()가 실행횔 때마다 실행해주는 전처리기이다. test를 진행하기 전 최초 1회 실행된다.
- afterEach는 test()가 실행횔 때마다 실행해주는 후처리기이다. test를 모두 끝내고 마지막에 1회 실행된다.
let temp;
describe("simple test", () => {
beforeEach(() => {
temp = 1;
});
afterEach(() => {
temp = 0;
});
test('tmep is 1', () => {
expect(temp).toBe(1);
});
test('temp is 1', () => {
expect(temp).toBe(1);
});
});