본문 바로가기

Programing/OpenSource

[JUnit] JUnit 4 to 5 migration

Unit 4에서 jupiter 라는 이름을 가지고 있는 Unit 5 로 마이그레이션을 했다.

기존에 Unit 5로 짜여 있는 코드가 에러가 발생했다.

이유는 구별을 하기 위해 애너테이션을 변경했기 때문이다.

  JUnit 4(vintage) JUnit 5(jupiter)
setUp @Before @BeforeEach
tearDown @After @AfterEach
test class setUp @BeforeClass @BeforeAll
test class tearDwon @AfterClass @AfterAll
테스트 무시 @Ignore @Disabled
  @Rule (사실상 없어졌다) @ExtendWith

이름은 동일한데 패키지만 변경된 것들이 있다.

  JUnit 4(vintage) JUnit 5(jupiter)
@Test org.junit.Test org.junit.jupiter.api.Test
  org.junit.rules.ExternalResource  
     
     
     

예외처리 방법이 바뀌었다.

@Test(expected = Exception.class)

처럼 expected를 사용하던 것을 본문내에 assert로 쓴다.

Assertions.assertThrows(Exception.class, () -> {});

RunWith ~ Mockito

@RunWith(MockitoJUnitRunner.class) 는 @ExtendWith(MockitoExtension.class)

테스트 클래스 및 메서드가 package private이어도 된다.

전에는 테스트 클래스, 메서드가 public 이어야 했는데, 이젠 default이면 된다.

같이 읽기

https://junit.org/junit5/docs/current/user-guide/

https://www.baeldung.com/junit-5-migration

https://www.baeldung.com/mockito-junit-5-extension

https://howtodoinjava.com/junit5/expected-exception-example/