단위 테스트를 왜 해야할까?
- 코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증할 수 있다.
- 리팩토링 시에 안정성을 확보할 수 있다.
- 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다.
Assertions.assertThat() or assertThat()?
- 특정 조건을 검증하기 위해 사용되며 예상되는 결과와 실제 결과를 비교하여 테스트를 수행
- 주로 단위 테스트나 통합 테스트에서 사용
- assertThat(테스트 타겟).메소드1().메소드2().메소드3();
- 사용될 수 있는 메소드로는 isEqualTo(e), contains(e), doesNotContain(e), startsWith(e), endsWith(e), isNotEmpty(), isPositive(n), isGreaterThan(n) 등이 있다.
@Test
@DisplayName("2, 3 => -1")
void t1() {
assertThat(new Solution().solution(2, 3)).isEqualTo(-1);
}
TDD (Test Driven Development)
- 실패하는 테스트를 만드는게 먼저
- 실패를 제거 (어떤 방식이던 상관없다.)
- 리팩토링
순서
- 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않음.
- 빨리 테스트를 통과하기 위해 어떤 방식으로든 상관없이 작성할 수 있다.
- 그 다음 테스트 코드도 작성한다.
- 새로운 테스트를 통과하기 위해 코드를 추가 또는 수정한다.
- 모든 중복을 제거하고 리팩토링한다.
*테스트 코드를 먼저 작성해야 하는 이유
*
- 깔끔한 코드를 작성할 수 있다.
- 장기적으로 개발 비용을 절감할 수 있다.
'IT' 카테고리의 다른 글
정적 웹 페이지와 동적 웹 페이지 (0) | 2024.06.08 |
---|---|
TCP, UDP (0) | 2024.06.06 |
변수? 객체? 클래스? (1) | 2024.06.04 |
컴파일 언어 & 인터프리터 언어 (0) | 2024.06.04 |
JVM, JRE, JDK (0) | 2024.06.03 |