Web/JEST 4

JEST - snapshot

snapshot 은 어떤 기능의 예상 결과를 미리 포착해두고 결과를 비교하는 테스팅 기법이다. 1. toMatchSnapshot() snapshot을 따로 파일을 만들어서 보관한다. 아래 코드를 실행하면 snapshot 파일이 생성된다. fn.js에 addNum이라는 함수를 하나 만들고 배열과 숫자를 입력받으면 각 배열의 요소마다 입력받은 숫자를 더한 뒤 배열을 리턴하는 함수를 작성하고 test를 진행해봤다. //fn.js addNum: (arr, num) => { arr = arr.map((el) => el + num); return arr; }, //it 과 test는 같은 함수이다 it("snapshot", () => { let result = fn.addNum([1, 2], 100); // [10..

Web/JEST 2023.12.07

JEST - Mock

Mock 함수는 새로운 함수를 구현한 게 아니라 테스트를 위해 구현하는 가짜함수이다. 가짜로 대체하는 이유 -테스트 하고 싶은 기능이 다른 기능과 엮여있을 경우 정확한 테스트를 하기 힘들다. -내가 작성한 코드의 문제인지 api의 문제인지 db의 문제인지 다른 문제인지 파악하기 힘들다. =>실제로 데이터베이스에 데이터를 넣지 않고 잘 작동한다는 전제하에 테스트를 하기 위해 mock이 필요하다 1. calls (호출확인) Jest는 에서는 가짜 mock 함수를 생성할 수 있는 jest.fn()을 제공한다. mock 함수에는 mock이라는 property가 있으며 이 안에는 calls라는 배열이 있다. mock property에는 호출되었던 값들이 저장된다. calls를 이용하면 함수가 총 몇번 호출 되었는..

Web/JEST 2023.12.06

JEST - before, after, only, skip

Jest에는 전역 환경에 있는 함수와 객체들이 있는데 그 중에서 before, after, only, skip 를 araboza. 1. Before / After Before, After 는 테스트 함수 실행 전 후에 실행되는 함수이다. 뒤에 Each와 All을 붙여서 각각 사용할 수 있다. 1.1. BeforeEach / AfterEach Each를 붙이면 각 test 함수마다 실행된다. let num = 10; //각 테스트 전마다 실행 beforeEach(() => { console.log("test start"); num = 0; }); //각 테스트 직후마다 실행 afterEach(() => { console.log("test end"); }); test("+1", () => { console...

Web/JEST 2023.12.05

JEST - Matcher

JEST는 Test Runner, Test Matcher, Test Mock 를 제공해주는 테스트 프레임워크이다. 설치 npm install --save-dev jest 설치 후엔 package.json 을 열어서 script 의 test 부분을 지우고 jest 로 고쳐주면 npm test로 테스트 할 수 있다. "scripts": { "test": "jest" }, 테스트 파일을 만들 땐, 테스트 파일명.test.js로 만든다. (app.test.js) npm test를 실행하면 Jest는 기본적으로 test.js로 끝나거나, __test__ 디렉터리 안에 있는 파일들을 테스트 파일로 인식하여 프로젝트 내에 모든 테스트 파일을 찾아서 테스트를 실행한다. 만약 특정 테스트 파일만 실행하고 싶은 경우에는 ..

Web/JEST 2023.12.05