일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- web
- commited
- boj
- 1868
- GitHub
- 응답코드
- npm
- SWEA
- SOCKET
- 소형기관차
- react
- 2869
- Git
- 알고리즘
- 파핑파핑지뢰찾기
- HTTP
- Ajax
- 백준
- JavaScript
- Java
- graph
- 17822
- staged
- 타겟넘버
- 17471
- JSP
- node.js
- 카카오코드페스티벌
- 달팽이는올라가고싶다
- 비동기
Archives
- Today
- Total
devlog
[Jest] Javascript Test 코드 작성하기 본문
1. jest란?
All-in-one 테스팅 라이브러리이다. Jest 이전에는 자바스크립트 코드를 테스트하라면 여러가지 테스팅 라이브러리를 조합해서 사용하곤 했었다. 하지만 Jest는 라이브러리 하나만 설치하면, Test Runner와 Test Mathcher 그리고 Test Mock 프레임워크까지 제공해주기 때문에 상당히 편리한 것 같다.
2. jest 사용하기
jest 라이브러리 설치하기
test script 수정하기: package.json의 test 부분을 아래와 같이 변경한다. test 뒤에 주고 싶은 option을 추가할 수 있다.
npm i -D jest
filename.test.js와 같은 이름의 file을 생성하고 test코드를 작성한다.
그 후
npm test
를 하면 test가 실행된다.
3. test 작성하기
test / it: 테스트 하나를 작성할 때 사용하는 키워드이다.(하나의 테스트 단위) 아래는 예시이다.
test('socket connect test', (done) => { socket.on('connect', () => { done(); }); });
describe: describe 라는 키워드를 사용하여 여러 테스트 케이스를 묶을 수 있다.
describe('socket.io test', () => { beforeAll(() => { ... }); afterAll(() => { ... }); test('socket connect test', (done) => { ... }); test('[EMIT] \'enter_room\' event test', (done) => { ... }); });
4. jest 더 알아보기
- 아래의 Methods들은 모두 scope가 있다. 전역에 쓰면 모든 테스트에 적용되고 하나의 describe안에 넣으면 그 describe안에 있는 test에만 적용된다. 예시는 위의 코드와 같다.
- afterAll(fn, timeout): 모든 테스트가 끝나고 한번 실행된다.
- afterEach(fn, timeout): 하나의 테스트가 끝날 때 마다 매번 실행된다.
- beforeAll(fn, timeout): 모든 테스트가 시작하기 전에 한번 실행된다.
- beforeEach(fn, timeout): 하나의 테스트가 시작하기 전에 매번 실행된다.
5. 자주 사용되는 Matcher
toEqual(): 두 값이 같은지 비교하는 Matcher이다. object가 정확히 같은지 판단할 수 있다. javascript에서
object.is
와 같다.expect(response).toEqual(value);
toBeTruthy(), toBeFalsy(): 값이 false인지 true인지 확인하는 Matcher이다.
expect(response).toBeTruthy(); // response가 true인지 확인
toHaveLength(): object의 길이를 확인하는 Matcher이다.
expect(response).toHaveLength(3);
toContain(): array에 포함하는지 확인하는 Matcher이다.
expect(response).toContain('hello');
toThrow(): 에러를 throw()하는지 확인하는 Matcher이다.
expect(() => { drinkFlavor('octopus'); }).toThrow();
'JavaScript' 카테고리의 다른 글
[Javascript] 자바스크립트 엔진, Event Loop, Event Queue, Call Stack (0) | 2019.08.07 |
---|---|
[Javascript] 구조 분해 할당(destructuring) (0) | 2019.08.02 |
[Javascript] Promise 이해하기 (0) | 2019.08.01 |
[Javascript] callback(콜백) 개념 이해하기 (2) | 2019.07.17 |
[Javascript]자바스크립트 기초-변수와 상수(var,let,const) (2) | 2019.07.16 |
Comments