사용자 도구

사이트 도구


wiki:java:junit:junit5

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
wiki:java:junit:junit5 [2022/04/26 18:11]
dhan
wiki:java:junit:junit5 [2023/01/13 18:44] (현재)
줄 21: 줄 21:
     * 클래스명에 붙는 애노테이션     * 클래스명에 붙는 애노테이션
     * '_'를 공백으로 치환     * '_'를 공백으로 치환
 +
   * @DisplayName("스터디 만들기 \uD83D\uDE31") - 권장   * @DisplayName("스터디 만들기 \uD83D\uDE31") - 권장
     * 메소드명에 붙는 애노테이션     * 메소드명에 붙는 애노테이션
     * 한글, 이모지 사용 가능     * 한글, 이모지 사용 가능
  
-=====  =====+===== Assertion ===== 
 +^ 테스트 케이스                          ^ 테스트 방법                            ^ 
 +| 실제 값이 기대한 값과 같은지 확인      | assertEquals(expected, actual)         | 
 +| 값이 null이 아닌지 확인                | assertNotNull(actual)                  | 
 +| 다음 조건이 참(true)인지 확인          | assertTure(boolean)                    | 
 +| 모든 확인 구문 확인                    | assertAll(executables...)              | 
 +| 예외 발생 확인                         | assertThrows(expectedType, executable 
 +| 특정 시간 안에 실행이 완료되는지 확인  | assertTimeout(duration, executable)    |
  
 +대안으로 AssertJ, Hemcrest, TGruth라이브러리도 사용 가능
 +
 +===== Assumption(조건에 따라 테스트 실행하기) =====
 +조건을 만족하면 아래의 테스트를 수행
 +조건을 만족하지 않으면 바로 종료(테스트를 수행하지 않으므로 성공도 실패도 아닌 Skip 상태임)
 +
 +assumingThat를 사용하여 조건과 executable을 동시에 사용할 수도 있음
 +
 +@EnabledOnOS, @DisabledOnOS({OS.MAC, OS.LINUE}), @EnabledOnJre({JRE.JAVA_8, ... }), @EnabledIfEnvironmentVariable(named = "", matches = "")
 +
 +
 +
 +===== Test 태깅, 필터링 =====
 +<code bash>
 +$> ./mvnw test -P ci
 +</code>
 +
 +
 +===== 커스텀 태그 =====
 +애노테이션을 생성해서 활용하자
 +
 +===== 테스트 반복하기 =====
 +매개변수를 넣어서 계속 반복할 수 있다.
 +하고 싶은 것은 모두 가능할 것으로 판단된다.
 +
 +===== 테스트 인스턴스 =====
 +기본 전략은 테스트 마다 인스턴스가 생성됨 <- 테스트간의 의존성을 없애기 위함
 +  @TestInstance(TestInstance.Lifecycle.PER_CLASS) <- 하나의 인스턴스로 진행
 +  @BeforeAll, @AfterAll 메소드가 static일 필요가 없음
 +
 +===== 테스트 순서 =====
 +기본 전략은 각 메소드는 독립적으로 구동되어야 하므로, 순서에 크게 신경을 쓰고 있지 않음
 +유즈케이스 테스트를 하려면 테스트의 순서도 필요함
 +  @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 +  @Order(1), @Order(2)... 순서가 같아도 오류는 나지 않음
 +
 +===== 설정 파일 =====
 +JUnit5에서 사용 가능
 +  src/test/resources/junit-platform.properties
 +  
 +===== JUnit5 확장 모델 =====
 +이전 JUnit4, JUnit3보다 단순해 짐
 +  @RunWith(Runner), TestRule, MehtodRule
 +  Extension  사용법
 +  
 +  선언적
 +  @ExtendWith(FindSlowTestExtension.class)
 +  public class ...
 +  
 +  코딩으로 구현
 +  @RegisterExtension (static로 정의되어야 됨)
 +  static FindSlowTestExtension
 +
 +===== JUnit5 마이그레이션 =====
 +vintage 라이브러리를 추가해야 됨
 +  
 +  
 ===== Ref ===== ===== Ref =====
-  * https://junit.org/junit5/docs/current/user-guide/#writing-tests-display-names+  * [[https://docs.google.com/document/d/1j6mU7Q5gng1mAJZUKUVya4Rs0Jvn5wn_bCUp3rq41nQ/edit|더 자바, "코드를 테스트 하는 다양한 방법" 강의 노트]] 
 +  * [[https://junit.org/junit5/docs/current/user-guide/#writing-tests-display-names|JUNIT5 사용자 가이드(공홈)]] 
 + 
 +===== 예제 ===== 
 +  * [[wiki:java:junit:junit5:example|예제]]
  
 {{tag>주레피 junit5}} {{tag>주레피 junit5}}
/volume1/web/dokuwiki/data/attic/wiki/java/junit/junit5.1650964296.txt.gz · 마지막으로 수정됨: 2022/04/26 18:11 저자 dhan