| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- list
- string
- 테스트자동화
- junit
- 단위테스트
- junit5
- CSS
- IntelliJ
- Array
- 자바문법
- 정규식
- HashMap
- vscode
- 배열
- 자바
- html
- Visual Studio Code
- SpringBoot
- 자바스크립트
- javascript
- 인텔리제이
- Eclipse
- input
- ArrayList
- 스프링부트
- js
- 문자열
- math
- Java
- java테스트
- Today
- Total
목록IT/JUnit (50)
어제 오늘 내일
1. assumeTrue()assumeTrue()는 JUnit5의 Assumptions 기능 중 하나로, 특정 조건이 참일 때만 테스트를 실행하도록 제어할 때 사용한다. 조건이 거짓이면 테스트는 **실패가 아니라 ‘Skipped(건너뛰기)’**로 처리되며, 이는 환경 의존적인 테스트를 작성할 때 특히 유용하다.예를 들어 운영체제가 Windows일 때만 실행하거나, 특정 시스템 프로퍼티가 설정된 경우에만 실행하도록 만들 수 있다. 2. 기본 사용법 예제import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;import static org.junit.jupiter.api.Assumptions.*;class Assum..
JUnit5의 조건부 실행(Conditional Execution) 기능은 테스트를 특정 조건에서만 실행하거나 스킵할 수 있도록 돕습니다.이러한 조건부 실행을 구현하는 핵심 API가 바로 ConditionEvaluationResult입니다.JUnit5 내부의 ExecutionCondition 확장 포인트에서 테스트 실행 여부를 결정할 때 사용됩니다.이번 글에서는 ConditionEvaluationResult가 무엇이며, 어떻게 활용되는지, 직접 조건을 만들어서 테스트 실행을 제어하는 방법까지 단계별로 설명합니다. 1. ConditionEvaluationResult란?ConditionEvaluationResult는 테스트 실행 여부를 나타내는 결과 객체입니다.ExecutionCondition 확장에서 반환..
JUnit5 확장(Extension) API의 핵심은 바로 ExtensionContext입니다.BeforeEachCallback, AfterEachCallback, ParameterResolver 등 다양한 확장 포인트에서 공통적으로 전달되는 객체이며,"현재 어떤 테스트가 실행되고 있으며 어떤 메타데이터를 가지고 있는지"에 대한 모든 정보를 제공합니다.이 글에서는 ExtensionContext가 제공하는 기능을 테스트 작성 관점에서 쉽게 이해할 수 있도록 정리합니다. 1. ExtensionContext란 무엇인가ExtensionContext는 테스트 실행 과정에서 JUnit5가 제공하는 실행 컨텍스트 정보 객체입니다.확장 기능 내부에서 테스트 메서드, 테스트 인스턴스, 태그, 예외 정보 등을 조회하거나 ..
JUnit5는 테스트 실행 동작을 개발자가 자유롭게 확장할 수 있도록 Extension API를 제공합니다. 그중 가장 많이 사용되는 확장 포인트가 바로 BeforeEachCallback과 AfterEachCallback입니다.이 두 인터페이스는 각각 각 테스트 실행 직전, 각 테스트 실행 직후에 개입할 수 있는 확장 기능을 제공합니다.아래에서는 이 확장 포인트들의 개념, 동작 시점, 구현 패턴, 실전 예제를 순서대로 설명합니다. 1. BeforeEachCallback·AfterEachCallback이란?JUnit5 확장(Extension) 기능은 테스트 라이프사이클 중 특정 시점에 사용자 코드를 개입시키는 구조입니다.BeforeEachCallback각 테스트 메서드 실행 전에 호출초기화, 공통 로깅, ..
JUnit5에서는 테스트 메서드가 컴파일 시점에 고정되지 않고, 실행 시점(Runtime)에 테스트를 동적으로 생성할 수 있는 기능을 제공합니다. 이를 Dynamic Test라고 하며, DynamicTest 및 @TestFactory를 통해 구현합니다.동적 테스트는 특히 반복 패턴 테스트, 입력값 조합 테스트, 데이터 기반 테스트(data-driven test) 등에 강력하게 활용됩니다.아래에서는 DynamicTest의 개념, 기본 사용법, 실전 예제까지 순서대로 정리합니다. 1. DynamicTest란?DynamicTest는 테스트 메서드가 고정된 정적 테스트(@Test)와 달리, 실행 중에 테스트 인스턴스를 생성하여 실행하는 테스트 방식입니다.특징@TestFactory 메서드를 통해 동적 테스트를 반..
JUnit5에서는 테스트 실행 중 키–값 형태의 실행 정보를 기록할 수 있도록 TestReporter API를 제공합니다.테스트 로그를 구조화하거나, 테스트 실행 맥락(context)을 기록하고 싶을 때 매우 유용한 도구입니다.아래에서는 TestReporter의 특징, 사용 방법, 실전 예제를 단계별로 정리합니다. 1. TestReporter란?TestReporter는 JUnit5가 제공하는 테스트 실행 정보 리포팅 인터페이스입니다.JUnit 플랫폼에 테스트 데이터를 전달하면, IDE·콘솔·리포터(예: Gradle, Maven Surefire)가 이를 받아 적절히 출력합니다.주요 특징테스트 실행 중 구조적(key-value) 로그를 남길 수 있음단순 출력이 아니라 테스트 리포터 시스템에 기록됨TestIn..
JUnit5에서는 테스트 실행 중에 테스트 이름, 표시 이름, 태그, 테스트 클래스/메서드 정보 등 다양한 메타데이터를 활용할 수 있도록 TestInfo API를 제공합니다.특히 테스트 문서화, 로그 관리, 공통 준비 코드에서 테스트 정보를 확인해야 할 때 매우 유용합니다.아래에서는 TestInfo의 특징과 활용 방법을 단계별로 정리합니다. 1. TestInfo란?TestInfo는 JUnit5가 테스트 실행 시 자동 제공하는 테스트 정보 컨텍스트 객체입니다.주요 기능테스트 메서드/클래스 정보 가져오기테스트 표시 이름(DisplayName) 조회테스트에 적용된 태그(Tags) 조회BeforeEach/BeforeAll에서 현재 실행되는 테스트 정보 활용테스트 대상 메서드에 파라미터로 선언하기만 하면 자동 주..
JUnit5에서는 Assumptions를 사용하면 “특정 조건을 만족할 때만 테스트를 진행하고, 아니면 테스트를 건너뛰는” 방식으로 조건부 테스트를 만들 수 있습니다.외부 환경, OS, 설정 값 등에 따라 테스트를 선택적으로 실행하고 싶을 때 유용합니다.아래에서는 JUnit5 Assumptions를 활용해 조건부 테스트를 작성하는 방법을 단계별로 정리합니다. 1. Assumptions가 무엇인지 이해하기JUnit5의 org.junit.jupiter.api.Assumptions 클래스는 다음 상황에서 사용합니다.요구 환경이 아니면 테스트를 실패로 처리하는 것이 아니라 “스킵” 하고 싶을 때특정 프로파일(예: dev, prod)이 아닐 때 테스트를 건너뛰고 싶을 때외부 시스템(예: 외부 API, DB)이 준..
JUnit3 기반의 테스트 구조에서는 테스트 메소드 이름이 테스트 식별자의 핵심 역할을 했습니다.따라서 테스트 실행 중 이름을 변경하거나, 특정 조건에 따라 동적으로 이름을 바꾸고 싶을 때 사용하는 메소드가 setName()입니다.JUnit4 이후로는 거의 사용되지 않는 레거시 기능이지만,레거시 테스트 유지보수 시 반드시 알아야 하는 개념입니다. 1. setName()이란?setName()은 현재 테스트 인스턴스에 저장된 테스트 이름을 변경하는 메소드입니다.JUnit3의 TestCase에서 제공되며, 생성자 또는 테스트 실행 흐름 중에 호출할 수 있습니다.특징테스트 실행 중 이름을 동적으로 수정 가능스위트 구성 시 테스트 이름 변경에 활용됨로그, 테스트 보고서 커스터마이징에 사용 2. JUnit3에서 s..
JUnit에서 테스트 실행 중 테스트 메소드의 이름을 확인해야 하는 경우가 종종 있습니다.특히 JUnit3 스타일에서는 테스트 인스턴스가 스스로 자신의 이름을 알고 있어야 했기 때문에getName() 메소드는 매우 중요한 역할을 했습니다.이 글에서는 getName()의 역할, 동작 방식, 사용 예제를 중심으로 초보자도 이해하기 쉽게 정리합니다. 1. getName()이란?getName()은 현재 실행 중인 테스트 메소드의 이름을 문자열로 반환하는 메소드입니다.JUnit3 기반의 TestCase가 제공하며, 테스트 로그 작성이나 디버깅에 유용했습니다.JUnit4부터는 @Test 기반으로 메소드명을 직접 관리하기 때문에 getName() 사용 빈도가 줄었고,JUnit5에서는 공식적으로 제공되지 않으며 확장 ..