테스트 코드의 필요성에 대해서 누구나 동의할 것이다.
프로젝트 이후 테스트 코드를 작성하는 것이 얼마나 필요한지 절실히 느꼈다. 테스트 코드가 없었다면 테스트 코드 작성한 시간보다 더 많은 시간을 쏟았을 것이다.
많이 부족한 테스트 코드였음에도 이정도의 효과라면, 더 좋은 테스트 코드를 작성했을 때의 효과는 어떨지 👏🏻👏🏻
describe('테스트 코드 작성하기', () => {
it ('테스트 코드 1', () => {
const sum = 1 + 2;
expect(sum).toEqual(3);
})
})
테스트 코드를 쭉 나열할 수 있지만, describe
와 it
를 사용하면, 테스트를 구분해 확인할 수 있다.
it
는 각각의 테스트, describe
는 테스트들의 묶음이다.
테스트 결과가 출력된 것을 통해 확인하면,
it
는 유저 로그인 성공, 유저 로그인 실패 이메일, 유저 로그인 실패 패스워드와 같은 각각의 테스트를 묶고, describe
는 이것들을 묶어 유저 로그인 테스트로 기록한다.
describe('테스트 코드 작성하기', () => {
it ('테스트 코드 1', () => {
const sum = 1 + 2;
expect(sum).toEqual(3);
})
})
이제 테스트 코드에서 값을 검증하는 단계를 보면,
expect(value).toXXX(expectValue)
와 같이 사용된다.
위 코드는 sum
이라는 변수에 담긴 값이 3
과 같다고 예측하는 코드다.
기대값이 같은 경우 PASS, 아닌 경우 FAIL의 결과를 갖게 된다.
Jest에서 사용되는 expect와 관련된 메서드들이 정리되어있다.
toBe
, toEqual
, toBeGreaterThan
, toBeGreaterThanOrEqual
, toBeTruthy
등등 많은 메서드들이 있어 테스트할 수 있다.