Skip to content

Instantly share code, notes, and snippets.

@appkr
Last active January 9, 2019 07:08
Show Gist options
  • Save appkr/6eaf161f01ee9c08d6b60c76eecdce8f to your computer and use it in GitHub Desktop.
Save appkr/6eaf161f01ee9c08d6b60c76eecdce8f to your computer and use it in GitHub Desktop.
OKKYCON: 2018 The Real TDD - TDD 제대로 알기

영상 목록: https://okky.kr/article/538114


[OKKYCON: 2018] 정진욱 - 테스트하기 쉬운 코드로 개발하기

테스트하기 쉬운 코드란?

  • 코드 실행 후 같은 결과를 기대할 수 있는 코드
  • 외부 모듈에 의존하지 않고, 외부 상태를 변경하지 않는 코드

테스트하기 쉬운 코드를 만드는 방법

  1. 테스트가 쉬운 코드와 어려운 코드를 서로 분리한다.
  2. 테스트가 쉬운 모듈과 어려운 모듈을 최대한 가장자리에서 만나도록 한다. 테스트 쉬운 모듈은 어려운 모듈을 합성으로 사용한다.
  3. 가장자리는 수둥 또는 자동으로 테스트한다.

용어

  • Mock(Double)
  • Seam
상태검증 행위검증
classicist mockist
inside-out outside-in
구현체 필요 구현체 불필요

Q&A

  • Private 함수는 Public 함수를 통해서 테스트한다.
  • 레거시는 구현을 테스트하지 않고, 인터페이스를 만들어 in/out 레벨로 테스트한다(Characterization).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment