분류 전체보기
-
테스트 반복하기테스트/Junit5 2021. 2. 2. 17:09
사용되는 애노테이션 @RepeatedTest 반복횟수와 반복 테스트 이름을 설정할 수 있다. {displayName} {currentRepetition} {totalRepetitions} @ParameterizedTest 테스트에 여러 매개변수를 대입해가며 반복 실행한다. {dispalyName} {index] {arguments} {0},{1} 예제코드1. RepeatedTest애노테이션을 활용한 테스트반복 package com.example.junittest; import org.junit.jupiter.api.*; @DisplayName("스터디 클레스") class StudyTest { @Test @DisplayName("스터디 만들기☺️") @FastTest void create_new_stud..
-
커스텀 태그테스트/Junit5 2021. 2. 2. 16:22
JUnit5 애노테이션을 조합하여 사용자가 커스텀 태그를 만드는 것이 가능하다. 커스텀 애노테이션을 만들때 Junit5 애노테이션을 이용해 기능을 사용할 수 있는데, 이때 Junit5 어노테이션을 메타애노테이션이라 한다. 이제 실습해보자. 이 글이 이해가 안된다면 2021/02/02 - [테스트/Junit5] - 태깅과 필터링 FastTest 애노테이션에서 이 애노테이션은 메타애노테이션 @Tag("fast") //Junit5의 애노테이션 -> FastTest 애노테이션에서 이 애노테이션은 메타애노테이션 public @interface FastTest { } package com.example.junittest; import org.junit.jupiter.api.Tag; import org.junit.j..
-
태깅과 필터링테스트/Junit5 2021. 2. 2. 15:59
테스트 태깅이란 테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 방법이다. 즉 어떤 테스트는 단위 테스트인지, 통합 테스트인지 구분하거나 실행시간 등 여러가지 조건을 생각해서 실행한 테스트 그룹에 태그를 붙일 수 있다. @Tag 에너테이션을 사용하여 태스트를 그룹화 시킬 수 있다. 하나의 테스트 메소드에 여러 태그도 사용 가능하다. 이 글에서 태깅과 필터링 하는 방법을 Intellij, maven build 두 가지로 설명하고자 한다. 예제1. Intellij에서 태깅및 필터링 @DisplayName("스터디 클레스") class StudyTest { @Test @DisplayName("스터디 만들기☺️") @Tag("fast") //로컬환경에서 void create_new_study..
-
조건에 따라 테스트 실행하기테스트/Junit5 2021. 2. 2. 14:27
특정한 운영체제의 환경변수, 환경에 따라 테스트를 실행하는 여부를 지정할 수 있다. 특정한 환경에서 조건을 검사하는 메서드와 어노테이션은 다음과 같다. 메서드 패키지명 : org.junit.jupiter.api.Assumptions.* 메서드: assumeTrue(조건), asummingThat(조건,테스트), assumeThat(조건, 테스트) 조건이 만족하면 다음 테스트코드나, 메서드 매개변수로 작성한 테스트코드를 실행한다. -> 말로하면 어려우니 예제코드를 보자. 어노테이션 @Enabled @Disabled onOS OnJre IfEnvironmentVariable 예제 코드를 보면서 이해해보자. 예제코드1. 환경변수 설정후 테스트하기 본인은 맥OS를 사용하기 때문에 IntelliJ IDE 터미널 ..
-
Assertion API테스트/Junit5 2021. 1. 28. 15:09
Assertion API는 테스를 실행할 때, 여러 상황을 검사하기 위해 사용된다. Assertion을 사용하기 위해선 다음과 같이 import문을 추가해야 한다. import static org.junit.jupiter.api.Assertions.*; 자주 사용되는 메서드 assertEquals(기대값, 실제값, 메세지) 실제 값이 기대한 값과 같은지 확인한다. 거짓인 경우 메세지를 출력한다. assertNotNull(값) 값이 null이 아닌지 확인한다. assertTrue(boolean) 값이 참인지 확인한다. assertAll(executables) 매개변수를 모두 확인하는 구문 assertThrows(expectedType, executable) 예외 발생 확인 assertTimeout(dura..
-
테스트 이름 표시하기테스트/Junit5 2021. 1. 28. 14:11
Junit5 테스트를 실시할 때, 메서드의 이름 대신 사용자가 정의한 전략과 이름에 따라 테스트 이름을 지정해 줄 수 있다. 가장 대표적인 방법은 다음과 같다. 1. @DisplayNameGeneration 클레스에 적용하는 어노테이션이다. 이 어노테이션을 이용해 전략을 설정하고 테스트 클레스에 적용하면 해당 클레스에 있는 테스트 메서드에게 테스트 이름에 대한 전략이적용된다. -> 구체적인 사용 방법은 밑에 소스코드를 참조하자. 기본 구현체로 ReplaceUnderscores 제공한다. -> 메서드 이름중 '_(언더바)'을 공백으로 바꾸어주는 전략 2.@DisplayName 테스트 메서드 이름보다 쉽게 표현할 수 있는 방법을 제공해주는 어노테이션으로써 주로 메서드와 클레스에 적용한다. @DisplayNa..
-
Junit 기본 어노테이션테스트/Junit5 2021. 1. 27. 15:03
본 블로그에 포스팅한 어노테이션 외 다른 어노테이션은 공식 레퍼런스를 확인하길 바란다. [참고]junit.org/junit5/docs/current/user-guide/#writing-tests-display-names 어노테이션 설명 @Test 어노테이션을 이용해 작선한 메서드가 테스트 메서드인것을 선언하며 어떤 attribute값을 선언하지도 않는다. @BeforeAll 테스트 클레스 안에 있는 모든 테스트 메서드가 실행되기 전 한번만 호출한다. 반드시 static 메서드를 사용하고 return타입이 있으면 안된다. @AfterAll 모든 테스트가 실행 된 이후에 한 번만 호출되는 것 외에 beforeAll과 같다 @BeforeEach 각각의 테스트(@Test, @RepeatedTest, @Param..
-
Junit5 시작하기테스트/Junit5 2021. 1. 27. 14:36
실습환 환경 JDK8 Intellij IDE Junit5 Maven Spring boot (+)Spring boot 2.2버전 이상부턴 Maven의 의존성 주입으로 인해서 Junit5가 포함된다. 그 이하 버전은 Junit4이다. 생성한 spring pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.4.2 com.example junittest 0.0.1-SNAPSHOT junittest Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.sp..