JUnit3 에서 JUnit4 로 옮겨가기

2021-03-15
  • junit
  • test
  • 구닥다리 프로젝트 환경에 Test Framework 가
    JUnit framework 의 TestCase interface 를 구현하고 있었고
    개인 프로젝트 JUnit 처럼 @Test 붙여서 테스트 만들고 싶은데
    왜 테스트 메소드 명을 프리픽스로 test 라고 붙여야되는지도 몰랐고
    @Before, @After 는 안먹는지도 몰라서 불편했는데,
    알고보니 JUnit3 기반이었다…

    설정

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
    

    변경된 것

    • TestCase 를 상속 받아서 테스트 클래스를 만들어야 함.
      • TestCase 와의 의존성이 사라짐
    • 테스트 메소드명은 test 로 시작해야 함.
      • JUnit4 에선 테스트 메소드명의 제약이 없어지고 @Test 로 마킹하여 구분함
      • @Test 어노테이션에 expected, timeout 과 같은 설정이 가능해짐.
    • 각 테스트 전/후에 실행할 메소드는 setUp/tearDown@Override 하여 구현.
      • @Before/@BeforeClass/@After/@AfterClass 등의 annotation 기반으로 변경.

    추가된 것

    • 테스트 클래스에 @RunWith(OtherRunner.class) 를 사용하여, JUnit Runner 말고 다른 클래스로 테스트 진행 가능

    참고