본문 바로가기
반응형

JUnit59

[Java] 아키텍처 테스트 - ArchUnit (+ JUnit 5) 이번 포스팅에선 아키텍처 테스트 라이브러리인 ArchUnit에 대해 알아보겠습니다. 아키텍처 테스트란? 아키텍처 테스트는 프로젝트가 정해놓은 아키텍처를 제대로 따르고 있는지 확인하는 것을 말합니다. ArchUnit이란? ArchUnit는 다양한 아키텍처 체크를 할 수 있는 메소드를 제공합니다. 1) 패키지 의존성 체크 2) 클래스 의존성 체크 3) 패키지 네이밍 룰 체크 4) 구현체 네이밍 룰 체크 5) 구현체 어노테이션 체크 6) 레이어 체크 7) 순환구조 체크 추가적인 내용은 공식 홈페이지 가이드를 참고하시길 바랍니다. ArchUnit User Guide ArchUnit is a free, simple and extensible library for checking the architecture of.. 2022. 9. 6.
[Java] JUnit 5 사용법 (12) - AssertJ ( + vs Hamcrest, 마이그레이션) 이번 포스팅에선 AssertJ에 대해서 알아보고 Hamcrest와 비교해보고 JUnit 5, Hamcrest 에서 AssertJ로 마이그레이션 하는 방법에 대해 알아보겠습니다.) AssertJ 간단하게 AssertJ에 대해서 알아보겠습니다. AssertJ도 spring-boot-starter-test에 포함되어 있습니다. 혹시 spring-boot-starter-test를 사용하지 않는다면 의존성 추가를 해주세요. //Maven org.assertj assertj-core 3.11.1 test //Gradle testCompile("org.assertj:assertj-core:3.11.1") testCompile("org.assertj:assertj-core:2.9.1") //version 2.9.1 f.. 2022. 9. 6.
[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 사용법 (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.
반응형