본문 바로가기
반응형

Java26

[Java] JUnit 5 사용법 (7) - 테스트 순서 (@TestMethodOrder) 이번 시간엔 JUnit 5 의 테스트 간 순서를 정하는 방법에 대해 알아보겠습니다. JUnit 5의 테스트 순서 @TestMethodOrder에 쓰여져있는 주석으로 설명드리겠습니다. "@TestMethodOrder가 선언되어있지 않다면 기본 알고리즘에 의해 순서가 정해지지만 아닌 경우도 있다". 라고 써져있습니다. * If {@code @TestMethodOrder} is not explicitly declared on a test class, * inherited from a parent class, or declared on a test interface implemented by * a test class, test methods will be ordered using a default algori.. 2022. 9. 6.
[Java] JUnit 5 사용법 (6) - 테스트 인스턴스 (@TestInstance) 이번 포스팅에선 JUnit 5의 테스트 인스턴스에 대해 알아보겠습니다. 테스트 인스턴스란? JUnit은 설정된 테스트 단위로 테스트 객체를 만듭니다. 이를 테스트 인스턴스라고 말합니다. 테스트 실행 범위라고 생각하시면 됩니다. 예를 보시면 더 빠른 이해가 가실 거에요. 아래 예제의 테스트를 전부 다 돌리면 어떤 결과가 나올까요? 저 test_1, test_2 메소드 중 하나는 테스트가 성공하지 않을까요? package com.effortguy.junit5; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertTrue; public class TestInstanceAnnotation { public i.. 2022. 9. 6.
[Java] JUnit 5 사용법 (5) - 반복 테스트하기 (@ParameterizedTest, @CvsFileSource, @ArgumentSource) (3) 이번 포스팅에서는 @ParameterizedTest의 부가 어노테이션 드디어 마지막 2개를 마무리짓겠습니다. @CvsFileSource .cvs 파일을 읽어서 테스트할 수 있게 해주는 어노테이션 @CvsSource와 거의 파라미터 값이 비슷합니다. 파라미터명 타입 설명 resources String[] .cvs 파일 경로 경로는 resources 폴더로부터 시작 files String[] .cvs 파일 경로 경로는 프로젝트 폴더로부터 시작 encoding String 파일 인코딩 값 기본값 : "UTF-8" lineSeparator String 줄 바꿈 구분자 기본값 : "\n" delimiter char delimiter를 변경 (char 형) delimiterString 하고 같이 사용 불가 deli.. 2022. 9. 6.
[Java] JUnit 5 사용법 (5) - @EnumSource, @MethodSource, @CvsSource 이번 포스팅에선 이전 포스팅에서 다뤘던 @ParameterizedTest를 사용할 때 부가적으로 사용해야 하는 어노테이션 9개 중 나머지 3개를 다루겠습니다. @EnumSource Enum에 정의된 상수들을 테스트하기 위한 어노테이션 파라미터명 타입 설명 value Class> 테스트할 Enum 클래스 기본값 : NullEnum.class names String[] 검색 조건 (문자열, 정규식) mode에서 사용됌 mode Mode INCLUDE : names.contains(name) 2022. 9. 6.
[Java] JUnit 5 사용법 (4) - 태깅, 필터링 테스트 (@Tag) 이번 포스팅에선 작성한 테스트 코드를 구분지어 태깅하고 원하는 태그만 필터링해서 테스트할 수 있게해주는 @Tag 어노테이션에 대해 알아보겠습니다. @Tag 테스트 클래스, 메소드에 테스트 구분을 태깅하기 위해 사용 파라미터명 타입 설명 value String 태그명 예시 빨리 끝나는 테스트는 fast로 늦게 끝나는 테스트는 slow로 태깅해서 테스트 돌릴 때 각각 실행시켜보겠습니다. 빠른 건 @Tag("fast"), 느린 건 @Tag("slow")로 태깅을 했습니다. package com.effortguy.junit5; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; public class TagAnnotation { @Test .. 2022. 9. 6.
[Java] JUnit 5 사용법 (3) - Test Results 테스트명 바꾸기 (@DisplayName, @DisplayNameGeneration, @IndicativeSentencesGeneration) 이번 포스팅에선 JUnit 5로 테스트할 때 나오는 테스트명을 변경하는 법에 대해 알아보겠습니다. 잠깐! 혹시 Gradle을 사용하고 계시다면 아래 작업을 먼저 해주세요. IntelliJ에선 Gradle 프로젝트일 경우 기본적으로 Gradle test runner를 사용하는데 @DisplayName 관련된 작업들을 지원하지 않는다고 합니다. 그래서 IntelliJ Test Runner로 변경하는 작업이 필요합니다. Ctrl + Shift + a -> "Build, " 입력 후 "Build, Execution, Deployment" 엔터 -> 하위 메뉴 "Gradle" 선택 -> Run tests using 값을 Gradle에서 intelliJ IDEA로 변경 -> OK 클릭 @DisplayName Tes.. 2022. 9. 6.
[Java] JUnit 5 사용법 (5) - @RepeatedTest, @ParameterizedTest, @ValueSource, @NullSource, @EmptySource, @NullAndEmptySource 이번 포스팅에선 조건에 따라 반복 테스트를 할 수 있게 해주는 어노테이션에 대해 알아보겠습니다. @RepeatedTest, @ParameterizedTest 처럼 어노테이션명이 Test로 끝나면 별도로 @Test 어노테이션이 없어도 테스트가 가능합니다. @RepeatedTest 파라미터명 타입 설명 value int 반복 횟수 (반드시 0보다 커야함) (필수) name String 반복할 때 나타나는 테스트명 기본값 : "repetition " + 현재 반복 횟수 + " of " + 총 반복 횟수 @ReapeatedTest를 사용하면 RepetitionInfo 타입의 인자를 받을 수 있습니다. 앞에서 설명했어야 했는데 추가로 말하자면 JUnit 테스트는 기본적으로 TestInfo 타입의 인자도 받을 수 .. 2022. 9. 6.
[Java] JUnit 5 사용법 (2) - 소개, 설정, 기본 메소드 (@Test, @BeforeEach, @AfterEach, @BeforeAll, @AfterAll, @Disabled) JUnit이 뭔지 알고싶으시다면 이전 포스팅을 확인해주세요. [Spring Boot] JUnit이란? JUnit 이란? 자바 개발자라면 반드시 알고있어야 하는 테스팅 프레임워크 중 하나입니다. 아주 심플하고 직관적인 Kent Beck, Erich Gamma, David Saff, Kris Vasudevan 이 만든 자바 테스팅 프레임워크로 XUnit이 effortguy.tistory.com JUnit 5란? JUnit 의 버전 5를 뜻하며 2017년 2월에 출시되어 많은 개발자들이 사용하고 있는 테스팅 프레임워크입니다. JUnit 5는 이전 버전들과 다르게 3개의 서브 프로젝트 모듈로 이루어져있습니다. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage .. 2022. 9. 6.
[Java] JUnit 5 사용법 (1) - JUnit이란? (JUnit 5) JUnit 이란? 자바 개발자라면 반드시 알고있어야 하는 테스팅 프레임워크 중 하나입니다. 아주 심플하고 직관적인 Kent Beck, Erich Gamma, David Saff, Kris Vasudevan 이 만든 자바 테스팅 프레임워크로 XUnit이라는 이름의 유닛 테스트 프레임워크 중 하나입니다. (자바는 JUnit, C 언어는 CUnit) Intellij를 만든 JetBrain 사에서 조사한 결과 단위 테스트를 하는 개발자는 75%고 그 중 JUnit을 사용하는 개발자는 2019년엔 93%, 2020년엔 83% 라고 하네요. 1년 사이에 10%나 줄었네요. (어떤 걸로 이동했나 궁금...) 2019년 통계 (https://www.jetbrains.com/lp/devecosystem-2019/java.. 2022. 9. 6.
반응형