React 테스트코드 - 특정 시각 보장하기

런던행·2020년 12월 9일
0

React

목록 보기
6/6

테스트코드에서 일자/시간은 테스트 수행중인 시각을 사용한다. 만약에 비지니스로직에 시간에 따라 분기하는 코드가 있다면(ex: 야간에는 서비스 중지, 이용요금 야간 할증) 테스트코드가 수행하는 시각에 따라 알맞게 분기가 되면서 테스트코드가 실패 될 수 있다.

리액트에서 이를 해결 할수 있는 방안을 여러 개 찾아보았지만 잘 되는 케이스가 없어 주먹구구식?으로 해결 한 방법을 공유하고자 한다.

구현 코드

const curDate = new Date(Date.now());

테스트코드

const knCalender: KNCalender = new KNCalender();
const nowDate: Date = new Date(2020, 8, 1); // 2020, 9월 1일
Date.now = jest.fn(() => nowDate.getTime());

테스트코드에서 Date.now() 함수를 mock하면 구현코드에서 Date.now()가 이를 치환한다.

profile
unit test, tdd, bdd, laravel, django, android native, vuejs, react, embedded linux, typescript

0개의 댓글