https://www.daleseo.com/jest-basic/
https://velog.io/@seongkyun/JEST-%EC%82%AC%EC%9A%A9%EB%B2%95
Jest는 테스팅 라이브러리
프론트앤드, 백앤드 둘다 사용
차이점
기존의 테스팅 라이브러는 여러 라이브러리를 조합해서 사용
Jest는 , Test Runner, Test Matcher, Test Mock 제공
설치

jest와 babel-jest를 함께 설치한다.
ES6이상의 문법을 사용하기 위해선 babel의 도움이 필요
(babel 처리를 하지 않으면 import조차 실행안됨)
설정
https://velog.io/@seongkyun/JEST-%EC%82%AC%EC%9A%A9%EB%B2%95
기초문법

describe
테스트 단위를 묶는 가장 큰 단위이다. 테스트 시 describe에 설명된 내용으로 테스트 단위를 크게 분류 해준다.
test, it
test(), it()을 통해 기본 테스트를 한다.
test와 it의 기능적 차이는 없지만 it의 경우 다른 테스트 프레임워크에서 많이 사용하기 때문에 넣었다고 한다.
expect
expect()안에 테스트할 변수나 값을 넣는다. 이후 toBe나 toEqual을 이용해 예측 값과 비교한다.
toBe, toEqual
결과 예측으로 가장 많이 쓰는 문법은 toBe와 toEqual이다.
toBe는 단순 비교, toEqual은 배열이나 객체 내부까지 깊은 비교를 해준다.
4.1.3 beforeEach, afterEach
let temp;
describe("simple test", () => {
beforeEach(() => {
temp = 1;
});
afterEach(() => {
temp = 0;
});
test('tmep is 1', () => {
expect(temp).toBe(1); // true
});
test('temp is 1', () => {
expect(temp).toBe(1); // true
});
});
beforeEach는 test()가 실행할 때마다 실행해주는 전처리기이다.
afterEach의 경우 test()가 종료될 때마다 실행하는 후처리기이다.
따라서 위 예시에서 몇번의 테스트를 하더라도 temp는 1이 된다.

테스트에 사용되는 명령어(Matcher)들입니다. toBe() 이외에도 유용한 명령어들이 많으니 문서를 참고하셔서 사용해보시면 좋을 것 같네요.
toBe(a) // 예상한 값이 매개변수와 같은 값일 것인지 확인합니다.
toEqual(obj) // 매개변수(객체)와 같은 값일 것이라 예상합니다. 객체가 가진 값의 비교가 가능합니다.
not.toBe(a) // 뒤의 결과를 부정하는 값과 비교합니다.
toBeNull() // 예상한 값이 null 인지 확인합니다.
toBeUndefined() // 예상한 값이 undefined 인지 확인합니다.
toBeDefined() // 예상한 값이 undefined 가 아닌지 확인합니다.
toBeTruthy() // 예상한 값이 truthy 한 값인지 확인합니다.
toBeFalsy() // 예상한 값이 falsy 한 값인지 확인합니다.
toBeGreaterThan(number); // number보다 큰 값인지 확인합니다.
toBeGreaterThanOrEqual(number); // number보다 크거나 같은 값인지 확인합니다.
toBeLessThan(number); // number보다 작은 값인지 확인합니다.
toBeLessThanOrEqual(number); // number보다 작거나 같은 값인지 확인합니다.
toBeCloseTo(float) // float인 매개변수와 같은 값인지 확인합니다. 부동소수점 에러를 해결하기 위해 고안되었습니다.
toMatch(string) // string을 포함하는 문자열인지 확인합니다.
toContain('item') // item을 포함하는 배열(iterator)인지 확인합니다.
toThrow() // 예외를 발생시키는지 확인합니다.
mock
'우아한테크코스' 카테고리의 다른 글
| 과정 (0) | 2022.11.07 |
|---|---|
| 오류 (0) | 2022.11.04 |
| 2주차 eslint prettier (0) | 2022.11.03 |
| 2주차 목표 (1) | 2022.11.02 |
| 2주차-git-[10분 테코톡] 오리&코린의 Merge, Rebase, Cherry pick (0) | 2022.11.02 |