[ java ] TDD, JUnit 5 사용법 기초 2 및 오류 해결 방법

JooKit 주킷 2020. 12. 26. 23:00
목차 접기
728x90
반응형

@BeforeClass

  • 테스트 클래스 시작 시 한번만 수행

    생성자

  • 테스트 케이스 시작 전 호출
    (@Before/@After 이외에도 생성자도 호출이 되는 걸 인지하자)

    @Before

  • 테스트 케이스 시작 전 호출
  • 테스트 값/상태 준비

    @Test

  • 테스트 케이스

    @After

  • 테스트 케이스 종료 후 호출
  • 테스트 후 정리

    @AfterClass

  • 모든 테스트 케이스 완료 후, 테스트 클래스 종료 전 수행

핵심 메소드

  • assertEquals : 두개의 객체가 같은지 확인
  • assertTrue/assertFalse : Boolean 결과값 확인
  • assertNotNull : 객체가 Null이 아닌지 확인
  • assertArrayEquals : 두 배열의 값이 같은지 확인

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Platform

  • JUnit Platform은 JVM에서 testing framework를 시작할 수 있는 기초 역할을 한다.

    JUnit Jupiter

  • Junit Jupiter는 JUnit 5의 테스트와 확장을 위한 새로운 프로그래밍 모델과 확장 모델의 조합니다.
  • 하위 프로젝트는 플랫폼을 기반으로 테스트하기 위한 엔진을 제공한다.

    JUnit Vintage

  • Platform에서 JUnit 3, 4 테스트를 실행하기 위한 테스트 엔진을 제공한다.

지원되는 자바 버전

  • Java 8 이상이면 가능
  • 이전 버전의 JDK로 컴파일된 코드라면 테스트할 수 있다.

테스트 도중 발생한 문제 (pom.xml의 dependency)

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <scope>test</scope>
</dependency>

java.lang.NoClassDefFoundError: 오류 해결 방법

<scope>test</scope> 위에 <version>5.5.2</version>을 입력했더니 아래와 같은 오류가 발생하였다.
그래서 version 부분을 삭제하고 다시 테스트를 실행하였더니 문제없이 실행되었다.

그런데 dependency를 추가하기 전에도 테스트가 실행되었는데 별도로 추가를 해주는 것과의
차이를 아직 찾지 못하였다.
java.lang.NoClassDefFoundError: org/junit/jupiter/api/extension/ScriptEvaluationException

테스트 클래스를 실행하는 단축키

alt + shift + x, t 

테스트 클래스에서 모든 메서드가 아닌 1개의 메서드를 테스트하는 방법

  • 해당 메서드명 위에 커서를 놓고 아래의 단축키를 입력
    alt + shift + x, t 
728x90
반응형
LIST