1. 소개

이 빠른 기사에서는 JUnit 5 프레임 워크에서 @RunWith 어노테이션 의 사용법을 다룰 것 입니다.

JUnit을 5 년 @RunWith의 어노테이션은 더 강력한로 대체되었습니다 @ExtendWith의 어노테이션 .

그러나 @RunWith 어노테이션은 이전 버전과의 호환성을 위해 JUnit5에서 계속 사용할 수 있습니다.

2. JUnit4 기반 러너로 테스트 실행하기

@RunWith 어노테이션을 사용하여 다른 이전 JUnit 환경에서 JUnit5 테스트를 실행할 수 있습니다 .

JUnit4 만 지원하는 Eclipse 버전에서 이러한 테스트를 실행하는 예를 살펴 보겠습니다.

먼저 테스트 할 클래스를 만들어 보겠습니다.

public class Greetings {
    public static String sayHello() {
        return "Hello";
    }  
}

다음으로이 일반 JUnit5 테스트를 작성해 보겠습니다.

public class GreetingsTest {
    @Test
    void whenCallingSayHello_thenReturnHello() {
        assertTrue("Hello".equals(Greetings.sayHello()));
    }
}

마지막으로 테스트를 실행할 수 있도록이 어노테이션을 추가해 보겠습니다.

@RunWith(JUnitPlatform.class)
public class GreetingsTest {
    // ...
}

JUnitPlatform의 클래스는 우리가 JUnit을 플랫폼에서 JUnit4 테스트를 실행하자 JUnit4 기반 주자이다.

의는하자 이 주자가 제한된 기능을 가지고 있으므로 JUnit4가 새로운 JUnit을 플랫폼의 모든 기능을 지원하지 않는다는 것을 명심하십시오.

Eclipse에서 테스트 결과를 확인하면 JUnit4 실행기가 사용되었음을 알 수 있습니다.

junit4 테스트

3. JUnit5 환경에서 테스트 실행

이제 JUnit5를 지원하는 Eclipse 버전에서 동일한 테스트를 실행 해 보겠습니다. 이 경우 @RunWith 어노테이션이 더 이상 필요하지 않으며 실행기없이 테스트를 작성할 수 있습니다.

public class GreetingsTest {
    @Test
    void whenCallingSayHello_thenReturnHello() {
        assertTrue("Hello".equals(Greetings.sayHello()));
    }
}

테스트 결과는 현재 JUnit5 실행기를 사용하고 있음을 보여줍니다.

junit5 테스트

4. JUnit4 기반 러너에서 마이그레이션

이제 JUnit4 기반 실행기를 사용하는 테스트를 JUnit5로 마이그레이션 해 보겠습니다.

예제로 Spring 테스트를 사용할 것입니다.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class GreetingsSpringTest {
    // ...
}

이 테스트를 JUnit5로 마이그레이션하려면 @RunWith 어노테이션을 새 @ExtendWith로 바꿔야합니다 .

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class GreetingsSpringTest {
    // ...
}

SpringExtension의 클래스는 JUnit을 5로 Spring (5)와 통합하는 스프링 TestContext 프레임 워크에서 제공 @ExtendWith의 어노테이션 모든 클래스가 구현하는 받아들이 확장 인터페이스를.

5. 결론

이 간단한 기사에서는 JUnit5 프레임 워크에서 JUnit 4의 @RunWith 어노테이션을 사용하는 방법에 대해 설명했습니다.

예제의 전체 소스 코드는 GitHub에서 사용할 수 있습니다 .