출력 기반 테스트: 입력을 주고 반환된 출력만 검증하는 방식으로, 부작용이 없는 코드(수학적 함수)에 적합하다.상태 기반 테스트: 동작 후 SUT, 협력자, DB/파일 등 시스템의 상태를 검증한다.커뮤니케이션 기반 테스트: Mock으로 SUT와 협력자 간 상호작용(메서
Unit Testing

복잡한 코드는 통상 도메인 모델이다.물론 문제 도메인과 직접적으로 관련이 없는 복잡한 알고리즘이 존재할 수 있다.협력자가 있는 경우가 거의 없는 코드이다.복잡도나 도메인 유의성도 거의 없다.도메인 클래스와 외부 애플리케이션과 같은 다른 구성 요소의 작업을 조정하는 역할

통합 테스트는 테스트 스위트에서 중요한 역할을 한다. 또한 단위 테스트와 통합 테스트의 수를 균형 있게 유지하는 것도 중요하다.작은 코드 단위를 검증빠르게 수행다른 테스트와 격리된 방식으로 수행통합 테스트 특성상 프로세스 외부 의존성에 직접 작동하면 느려질 수 밖에 없

Mock의 가치를 극대화하기

데이터베이스를 테스트하기 전에 충족해야 하는 몇 가지 조건이 있다. 이 조건들을 마련하지 않으면 테스트는 불안정하고, 관리하기 어렵고, 심지어 무의미해질 수 있다. 소스 제어 시스템에 데이터베이스 유지하기모든 개발자를 위해 별도의 데이터베이스 인스턴스 사용하기데이터베이