본문 바로가기

Programing/테스트

TDD 모범사례(best practice)

'베스트 프렉티스'를 모범사례로 번역을 한 것은 참고문헌 MAS10 p.xx/p.2를 따른 것이다.


"한 번에 하나의 객체만 테스트하라." - MAS10 p.43

"assert 호출 시에는 실패 원인을 기술하라." - MAS10 p.47

"하나의 @Test 메서드에서는 하나의 테스트만 수행하라." - MAS10 p.50

"실패할 가능성이 잇는 모든 것을 테스트하라." - MAS10 p.53

"테스트를 통해 코드를 개선하라." - MAS10 p.57

"예외 테스트도 읽기 쉽게 만들어라." - MAS10 p.59

"테스트를 통해 코드를 개선하라." - MAS10 p.59

"테스트를 건너뛸 때는 반드시 그 이유를 명시하라." - MAS10 p.62

"같은 패키지, 다른 디렉터리" - MAS10 p.67

"리팩터링하라" - MAS10 p.71

테스트 가능한 코드 작성하기 - MAS10 pp.93~101

 5.2.1 공개 API는 계약이다.

 5.2.2 종속성을 줄여라

 5.2.3 생성자는 간단하게 만들어라

 5.2.4 최소 지식의 원칙(디미터의 법칙)을 따르라

 5.2.5 숨겨진 종속성과 전역 상태를 피하라

 5.2.6 싱글톤의 장단점

 5.2.7 제너릭 메서드를 애용하라

 5.2.8 상속보다 컴포지션을 활용하라

 5.2.9 조건 분기보다 다형성을 활용하라

"실패하는 테스트를 먼저 작성하라" - MAS10 p.104

"지속적으로 회귀 테스트를 수행하라" - MAS10 p.108

"목 객체 안에서는 비즈니스 로직을 구현하지 말라." - MAS10 p.136

"문제될 가능성이 있는 것만 테스트하라." - MAS10 p.137

"녹색 상태에서 리팩터링하라"  - GRE11 p.xv


참고문헌

[GRE11]

James W. Grenning. Test-Driven Development for Embedded C. [PDF]

Pragmatic Programmers, 2011

임베디드C를 위한 TDD(인사이트. 신제용, 한주영 옮김. 2012) 


[MAS10]

JUnit in Action

Petar Tahchiev, Felipe Leme, Vincent Massol, Gary Gregory, 2010

JUNIT IN ACTION: 단위 테스트의 모든 것(인사이트, 이복연 옮김. 2011)