TDD

좋은 테스트 코드

테오구 2022. 4. 23. 11:27
728x90

테스트의 비밀

  1. 한번 작성된 테스트 코드는 영원히 유지보수 해야 한다.
  2. 테스트 코드에서는 내부 구현 사항을 테스트하면 안된다.너무 내부적인 상황을 넣게 되면 구현 사항을 조금만 변경해도 테스트가 실패합니다.
  3. 사용자가 사용하는 함수, 클래스, API만을 가지고 테스트해야합니다.
  4. 재사용성 높이기(테스트 유틸리티)
  5. 반복되는 코드가 있다면 함수나 클래스로 만들어서 재사용성을 높입니다.
  6. 배포용 코드와 철저히 분리
  7. test코드와 mock stub같은 것들을 철저히 분리해야합니다.
  8. 테스트코드를 통한 문서화

테스트코드

우리가 하나의 테스트를 작성하게되면

호출이 실행되기 전에 수행되는 beforeEach와 beforeAll가 실행되고

테스트 코드가 실행되고 나서 호출되는 afterEach affterAll이 있습니다.

그렇다면 test안은 어떤 식으로 구현이 되어져 있을까요?

테스트 안에서는 테스트를 위한 오브젝트를 형성하고 여러가지 데이터를 준비하기 위한 준비 과정

그다음에 우리가 테스트하고자 하는 코드를 실행하고

그 다음에 실행된 값을 우리가 예상하는 값과 비교 검증하는 단계

준비과정에서 여러 코드가 반복되고 있다면 그걸 재사용할 수 있도록 따로 유틸리티 함수로 정의할 것

실행과정에서는 코드를 실행했을 때 의도적으로 실패를 해야합니다. 일부러 다른 값을 넣어본다던가 해서 진행합니다. 그 이유는 버그를 수정할 때 실패하는 테스트를 만들어서 버그가 이런 상황에서 발생하구나를 검증한 다음에 버그를 수정해서 테스트 코드가 성공할 수 있도록 하는 것이 중요합니다.

728x90

'TDD' 카테고리의 다른 글

테스트의 범위  (0) 2022.04.26
FIRST 원칙  (0) 2022.04.25
stub  (0) 2022.04.22
mock  (0) 2022.04.19
basic  (0) 2022.04.19