Recent Posts
Recent Comments
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
관리 메뉴

ㅇ.ㅇ

[JUnit] 테스트 관련 어노테이션 정리 #1 본문

Today I Learned

[JUnit] 테스트 관련 어노테이션 정리 #1

yun_ 2024. 10. 13. 23:40
반응형

 

 

이번에 천천히 TDD 공부를 해보면서 사용해봤던 테스트 관련 어노테이션을 정리해보려고 한다. 이렇게라도 한번 적지 않으면 그냥 계속 사용방법만 아는채로 사용하기 때문이다.

 

 

 1. @Test

  • JUnit5의 기본 테스트 메서드 어노테이션
  • 해당 메서드가 테스트 메서드임을 명시한다.
  • 메서드의 반환 타입이 void여야 하고, 파라미터를 받지 않는다.
@Test
void testAddition() {
    int result = Calculator.add(1, 2);
    assertEquals(3, result);
}

 

2. @DisplayName

  • 테스트 메서드의 이름을 설명하는 어노테이션
  • 테스트를 더 직관적으로 이해할 수 있도록 이름을 지정할 수 있다.
  • IDE에서 표시되는 이름으로, 한글이나 특수문자 사용도 가능하다.
@Test
@DisplayName("1 + 1은 2여야 한다.")
void testSimpleAddition() {
    int result = Calculator.add(1, 1);
    assertEquals(2, result);
}

 

3. @ParameterizedTest

  • 여러 파라미터를 이용해 테스트를 반복 실행할 수 있는 어노테이션
    • 즉, 각 파라미터에 대해 독립적인 테스트가 실행되는 것이다.
  • 다양한 입력 값에 대해 동일한 테스트를 수행할 수 있다.
@ParameterizedTest
@ValueSource(ints = {1, 2, 3})
void testIsPositive(int number) {
    assertTrue(number > 0);
}

 

 4. @ValueSource

  • @ParameterizedTest와 함께 사용되며, 하나 이상의 값을 파라미터로 테스트에 제공하는 어노테이션
  • String, int, long, double 등의 기본형 타입을 지원한다.
  • 배열 형태로 여러 값을 한 번에 제공할 수 있다.
@ParameterizedTest
@ValueSource(strings = {"apple", "banana", "cherry"})
void testStringLength(String fruit) {
    assertTrue(fruit.length() > 0);
}

 

5. @NullAndEmptySource

  • @ParameterizedTest와 함께 사용되며, null 및 빈 값을 파라미터로 테스트에 제공하는 어노테이션
  • null, ""(빈 문자열)과 같은 문자열뿐만 아니라, 빈 컬렉션(List, Set, Map)에도 사용할 수 있다.
  • 문자열이나 컬렉션을 테스트할 때 유용하다.
@ParameterizedTest
@NullAndEmptySource
void testNullOrEmptyString(String input) {
    assertTrue(input == null || input.isEmpty());
}

 

 

이번에 적지 못한 테스트 관련 어노테이션들은 다음 이 시간에,,

반응형

'Today I Learned' 카테고리의 다른 글

[Query] JSON 데이터 처리 방식 : PostgreSQL / Oracle  (0) 2024.11.21
[IDE] Intellij 와일드카드 import 방지  (2) 2024.10.20
[Java] FilenameUtils 사용하기  (1) 2024.10.13
[Java] Utility Class  (0) 2023.04.23
[Git] cherry-pick  (0) 2023.03.17