728x90
반응형
테스트에 대한 입문책이다. 혹시나 어떤 재밋는 개념을 얻을 수 있을까 하여 가볍게 읽게 되었다
expect.assertions
아래의 코드에서는 테스트 대상의 코드는 실행이 되지 않는다
wait(50)은 에러를 발생시키지 않으므로
이럴때는 expect.assertions를 사용하면 된다
test('지정 시간을 기다린 뒤 경과 시간과 함께 reject된다', async () => {
try {
await wait(50)
} catch (err) {
expect(err).toBe(50) // <- 테스트 대상
}
});
아래처럼 지정하면 expect문이 실행이 안된채로 종료가 되어서 테스트는 실패한다
test('지정 시간을 기다린 뒤 경과 시간과 함께 reject된다', async () => {
expect.assertions(1) // <- 단언문이 한 번 실행되는것을 기대한다
try {
await wait(50)
} catch (err) {
expect(err).toBe(50) // <- 테스트 대상
}
});
위의 코드는 비동기 처리를 해야할때 추가하면 사소한 실수를 줄일 수 있다
stub과 spyon의 차이
stub은 목 객체다 / api 응답 대신 객체를 반환하는 것
spyon은 목 함수다 / 콜백 함수를 체크 할때 주로 사용하게 된다
현재 시각에 의존하는 테스트
=> 현재 시각을 고정할 수 있다
예전에 이런 고민을 한 적 있었는데 시간을 주입받는 방법으로 함수를 수정했었다
아래와 같은 로직들이 있는지 좀 더 찾아볼걸 그랬나보다
jest.useFakeTimers
jest.setSystemTime
jest.useRealTimers
describe("greetByTime(", () => {
beforeEach(() => {
jest.useFakeTimers();
});
afterEach(() => {
jest.useRealTimers();
});
test("아침에는 '좋은 아침입니다'를 반환한다", () => {
jest.setSystemTime(new Date(2023, 4, 23, 8, 0, 0));
expect(greetByTime()).toBe('좋은 아침입니다');
});
});728x90
반응형
'책' 카테고리의 다른 글
| 회복 탄력성 / 시련을 행운으로 바꾸는 마음 근력의 힘 (0) | 2026.01.18 |
|---|---|
| 인생은 한번뿐 시간은 되돌릴 수 없고 (0) | 2026.01.18 |
| 요즘 당근 AI 개발 (0) | 2026.01.06 |
| 오늘부터 나를 칭찬하기로 했다 (0) | 2025.11.30 |
| |덜 지치고 더 빨리 회복하기 위한| 쉬는기술 (0) | 2025.11.14 |
