IT
테스트
yeosang0508
2024. 6. 5. 19:47
단위 테스트를 왜 해야할까?
- 코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증할 수 있다.
- 리팩토링 시에 안정성을 확보할 수 있다.
- 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다.
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)
- 실패하는 테스트를 만드는게 먼저
- 실패를 제거 (어떤 방식이던 상관없다.)
- 리팩토링
순서
- 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않음.
- 빨리 테스트를 통과하기 위해 어떤 방식으로든 상관없이 작성할 수 있다.
- 그 다음 테스트 코드도 작성한다.
- 새로운 테스트를 통과하기 위해 코드를 추가 또는 수정한다.
- 모든 중복을 제거하고 리팩토링한다.
*테스트 코드를 먼저 작성해야 하는 이유
*
- 깔끔한 코드를 작성할 수 있다.
- 장기적으로 개발 비용을 절감할 수 있다.