기본 패턴
java
class CalculatorTest {
@Test
void add_returnsSum() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result);
}
}설명
- JUnit은 Java 코드가 기대한 대로 동작하는지 자동으로 검증하게 해 주는 표준적인 테스트 도구입니다. 핵심은 "손으로 실행하고 눈으로 확인하던 과정"을 반복 가능한 코드로 바꾸는 데 있습니다.
- 좋은 테스트는 단순히 코드를 한 번 더 실행하는 것이 아니라, 입력과 기대 결과를 분명하게 드러냅니다. 그래서 테스트 이름, 준비 단계, 실행 단계, 검증 단계가 읽기 쉽게 나뉘는 편이 좋습니다.
@Test는 테스트 메서드를 표시하고,assertEquals,assertThrows,assertTrue같은 assertion은 기대 조건을 명시합니다. assertion은 많을수록 좋은 게 아니라, 실패했을 때 무엇이 틀렸는지 빨리 알 수 있게 쓰는 것이 중요합니다.- fixture는 여러 테스트가 공통으로 쓰는 준비 상태입니다. 너무 큰 fixture는 테스트를 무겁고 이해하기 어렵게 만들 수 있어서, 테스트마다 필요한 상태만 만드는 편이 유지보수에 유리합니다.
- Java에서 테스트 감각이 생기면 이후 Spring, Android, JPA 같은 큰 프레임워크를 배울 때도 "이 기능을 어떻게 검증하지?"라는 사고를 자연스럽게 이어갈 수 있습니다.
빠른 정리
| 요소 | 역할 |
|---|---|
@Test | 테스트 메서드 표시 |
| assertion | 기대 결과 검증 |
| fixture | 테스트 준비 상태 |
assertThrows | 예외 검증 |
| 테스트 이름 | 의도와 실패 맥락 전달 |
주의할 점
테스트를 "코드를 한 번 더 실행해 보는 스크립트"처럼 쓰면 실패 원인이 흐려집니다. 준비, 실행, 검증이 분명히 읽히는 구조를 유지하는 것이 더 중요합니다.
참고 링크
2 sources