클린 단위 테스트
단위 테스트를 작성할 때 중요하게 생각하는 것 중 하나가 바로 '테스트 코드 역시 관리해야 하는 코드다'입니다. 테스트를 작성하고 유지하다보면 이 역시 만만찮은 비용이 들어간다는 사실을 알게됩니다. 나중에 유지하기 어려워서 테스트를 꺼버리는 경험을 누구나 한 번쯤은 하곤 하죠.
it.skip('...', () => {...}); // 이 테스트는 이제 더이상 유지할 수 없어...그렇기 때문에 테스트 코드를 작성할 때에도 유지하기에 좋은 방법으로 작성해야 합니다. 이번에 소개해드릴 글은 테스트 코드를 어떻게 잘 작성할 수 있는지 소개하는 글입니다.
이 글은 Robert C. Martin의 글을 인용하는 걸로 시작하는데요, 정말 좋아하는 문장 중 하나 입니다.
“Test code is just as important as production code. It is not a second-class citizen. It requires thought, design, and care. It must be kept as clean as production code.”
이 글의 요약은 아래와 같습니다.
테스트의 구조를 Arrange-Act-Assert 패턴으로 잡으세요.
BDD에서 사용하는 Given-When-Then도 참고하면 좋습니다 :)
일반적으로 사용되는 객체들을 쉽게 설정하기 위해 테스트 객체 빌더를 사용하세요.
하나의 단위 테스트에선 하나의 개념만 테스트하세요.
테스트는 빠르고, 독립적이고, 반복할 수 있어야 하고, 자기 검증이 가능해야 하며(성공 또는 실패로 대표되어야 합니다.) 프로덕션 코드와 비슷한 시기에 작성해야 합니다.
테스트는 실패해야 할 때 실패해야 합니다.
Happy Path 뿐만 아니라 Edge Case역시 테스트 해야 합니다.
https://stryker-mutator.io/ 와 같은 서비스도 있으니 활용해보면 좋을거 같아요 :)
잘못된 결과로 이어질 것 같은 케이스를 테스트해야 합니다.
더 자세한 내용은 원글을 참고해주세요 :)
원글:
https://betterprogramming.pub/clean-code-with-unit-tests-5f28020828a5
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.