IT

테스트

yeosang0508 2024. 6. 5. 19:47

단위 테스트를 왜 해야할까?

  1. 코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증할 수 있다.
  2. 리팩토링 시에 안정성을 확보할 수 있다.
  3. 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다.

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)

- 실패하는 테스트를 만드는게 먼저
- 실패를 제거 (어떤 방식이던 상관없다.)
- 리팩토링

순서

  1. 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않음.
  2. 빨리 테스트를 통과하기 위해 어떤 방식으로든 상관없이 작성할 수 있다.
  3. 그 다음 테스트 코드도 작성한다.
  4. 새로운 테스트를 통과하기 위해 코드를 추가 또는 수정한다.
  5. 모든 중복을 제거하고 리팩토링한다.

*테스트 코드를 먼저 작성해야 하는 이유
*

  1. 깔끔한 코드를 작성할 수 있다.
  2. 장기적으로 개발 비용을 절감할 수 있다.