Test-Driven Development - Test-Driven Development Pattern

다용도리모콘·2021년 5월 31일
0

개발 책 읽기

목록 보기
2/18

Test

테스트 한다는 것과 테스트가 있다라는 것은 의미하는 바가 다르다.
테스트 한다: 테스트 코드를 가지지 않고 수작업으로 기능을 테스트 하는 것.
테스트가 있다: 자동화된 테스트가 존재 한다는 것.

(아마도)모든 개발자는테스트를 한다.
하지만 (아마도) 많은 개발자의 프로젝트에 테스트가 있지 않다.

테스트는 두려움을 지루함으로 바꿔주는 효험이 있다. 스트레스를 더 많이 받을수록 테스트도 더 많이 실행한다. 테스트를 실행하면 즉시 좋은 느낌을 받게 되고 그러면 작업 중에 에러를 낼 일도 줄게 되며, 스트레스도 적어진다.(선순환)
-- Test-Driven Development:By Example

격리된 테스트

각각의 테스트 사이에 영향이 없어야 한다.
서로 영향이 없는 작고 빠른 테스트를 만드는 것이 좋다.
단, 각 테스트를 실행하기 위한 환경을 쉽고 빠르게 세팅할 수 있어야 한다.

unit 테스트를 진행할 때는 되도록 의존성들을 mocking 해서 테스트를 빠르게 실행할 수 있지만 e2e 테스트의 경우 실제 환경을 세팅해야 하기 때문에 속도 이슈가 필연적으로 발생한다. 어떻게 해결하면 좋을까?

테스트 작성 순서

  1. 작성해야할 테스트 목록을 모두 작성.

  2. 각각의 테스트에 대해 assert 작성.

  3. 테스트 코드 작성.

  4. 테스트 코드를 통과하도록 기능 작성.

    테스트 데이터

  • 쉬운 데이터를 사용할 것.
  • 유의미한 데이터를 사용할 것.(2*2도 4고 2+2도 4다)
  • 실제 데이터를 사용하는 것도 유용함.
  • 예상 데이터와 실제 데이터를 포함해 둘 사이의 관계를 드러내라. (이례적으로 상수를 사용해도 좋음)
    ex) 2.plus(4) == 6

0개의 댓글