| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- string
- 자바문법
- 이클립스
- 배열
- vscode
- Java
- math
- 단위테스트
- CSS
- input
- ArrayList
- 정규식
- 테스트자동화
- Array
- 자바스크립트
- junit
- html
- 문자열
- json
- javascript
- Visual Studio Code
- java테스트
- 자바
- js
- junit5
- IntelliJ
- HashMap
- list
- 인텔리제이
- Eclipse
- Today
- Total
목록단위테스트 (34)
어제 오늘 내일
1. ExtensionContext.getStore()란 무엇인가ExtensionContext.getStore()는 JUnit5 확장 모델(Extension API)에서 제공하는 강력한 저장소 기능으로,확장(Extension) 내부에서 테스트 실행 중 데이터를 보관하고 공유할 수 있는 Key-Value 기반 스토어를 제공한다.스토어(Store)는 단순 Map이 아니라 JUnit이 생명주기별로 관리하는 스코프 기반 저장 공간이며, 이를 활용하면 다음을 구현할 수 있다.테스트 실행 전후에 데이터를 공유타이머, 카운터 등 실행 중 누적 데이터 유지확장 간 공통 데이터 공유클래스 단위, 메서드 단위로 자동 정리되는 임시 데이터 저장JUnit5 확장에서 가장 유용한 기능 중 하나다. 2. 기본 사용 예제 – 데이..
1. ExtensionContext.getTestMethod()란 무엇인가ExtensionContext.getTestMethod()는 현재 실행 중인 테스트가 어떤 테스트 메서드를 실행하고 있는지를 Optional 형태로 제공하는 JUnit5 확장 API이다.확장에서 테스트 메서드 정보를 조회하면 다음과 같은 작업이 가능해진다.테스트 메서드 이름 기반 로깅테스트 메서드 애노테이션 검사메서드 시그니처 기반 조건 처리실행 중인 테스트 메서드에 맞춰 동적 설정 적용확장을 활용하는 테스트 자동화 환경에서는 매우 빈번하게 사용되는 메타데이터 API다. 2. 기본 사용 예제import org.junit.jupiter.api.extension.BeforeEachCallback;import org.junit.jupit..
1. ExtensionContext.getTestClass()란 무엇인가ExtensionContext.getTestClass()는 JUnit5 확장 API에서 제공하는 메서드로,현재 실행 중인 테스트가 속한 테스트 클래스 정보를 Optional> 형태로 반환한다.확장에서 테스트 클래스 정보를 가져오면 다음과 같은 활용이 가능하다.클래스 기반 로깅클래스 애노테이션 검사클래스 단위 설정/초기화 로직 적용리플렉션 기반 유틸 처리확장(Extension) 작성 시 가장 자주 사용하는 메타데이터 중 하나다. 2. 기본 사용 예제import org.junit.jupiter.api.extension.BeforeEachCallback;import org.junit.jupiter.api.extension.Extension..
1. AfterEachCallback.afterEach()란 무엇인가AfterEachCallback은 JUnit5의 확장 모델(Extension API)이 제공하는 콜백 인터페이스 중 하나로,afterEach(ExtensionContext context) 메서드는 각 테스트 메서드 실행이 끝난 직후 호출되는 확장 포인트이다.이는 @AfterEach와 유사하지만, 확장(Extension)을 통해 테스트 외부에서 공통 정리 로직을 강제하거나 자동화할 수 있다는 점에서 더 강력하다.예: 리소스 해제, 트랜잭션 처리, 로그 수집, 타이머 종료, 모니터링 훅 등. 2. 기본 구현 예제import org.junit.jupiter.api.extension.AfterEachCallback;import org.junit..
1. BeforeEachCallback.beforeEach()란 무엇인가BeforeEachCallback은 JUnit5 확장 모델(Extension API)의 대표적인 콜백 인터페이스 중 하나이며,beforeEach(ExtensionContext context) 메서드는 각 테스트 메서드 실행 직전에 호출되는 확장 포인트다.기본 어노테이션인 @BeforeEach와 달리, 확장을 통해 테스트 외부에서 공통 동작을 주입할 수 있다는 점이 핵심이다.로깅, 테스트 데이터 초기화, 환경 설정, Mock 세팅 등 다양한 작업을 확장으로 구현할 수 있다. 2. 기본 구현 예제import org.junit.jupiter.api.extension.BeforeEachCallback;import org.junit.jupit..
1. dynamicTest()란 무엇인가dynamicTest()는 JUnit5의 동적 테스트(Dynamic Test) 기능을 생성하는 팩토리 메서드로, 실행 시점에 테스트를 구성할 수 있게 한다.정적 테스트(@Test)와 달리, 테스트 개수와 구성 요소가 코드 실행 중 동적으로 결정된다는 점이 가장 큰 특징이다.데이터 기반 테스트, 반복 패턴 테스트, 입력값 목록을 기반으로 한 자동 생성 테스트 등에 매우 적합하다. 2. 기본 사용 예제import org.junit.jupiter.api.DynamicTest;import org.junit.jupiter.api.TestFactory;import java.util.List;class DynamicTestBasicExample { @TestFactory ..
1. Map 기반 로그 기록이란?JUnit5의 TestReporter는 테스트 실행 중 키-값 형태의 구조적 로그를 기록할 수 있도록 지원한다. 그 중 Map 기반 로그 기록은 여러 필드를 하나의 엔트리로 묶어 한 번에 전달할 수 있어, 테스트 단계별 상세 로그를 남길 때 매우 유용하다.publishEntry(Map values) 메서드를 사용하면 복잡한 로그 데이터를 깔끔하고 일관된 구조로 리포트에 남길 수 있다. 2. 기본 사용 예제import org.junit.jupiter.api.Test;import org.junit.jupiter.api.TestReporter;import java.util.HashMap;import java.util.Map;class ReporterMapExample { ..
1. TestReporter란 무엇인가TestReporter는 JUnit5에서 테스트 실행 과정에서 키-값 형태의 로그 정보를 보고서(Test Report)에 기록할 수 있도록 제공되는 인터페이스이다.publishEntry() 메서드를 사용하면 테스트 실행 중 남긴 정보를 JUnit 플랫폼이 제공하는 출력 및 리포트 시스템에 안전하게 전달할 수 있다.일반 System.out.println()과 달리, 테스트 결과와 연계된 구조적 로그를 남길 수 있다는 점이 가장 큰 장점이다. 2. 기본 사용 예제import org.junit.jupiter.api.Test;import org.junit.jupiter.api.TestReporter;class ReporterBasicExample { @Test v..
1. getTestMethod()란 무엇인가TestInfo.getTestMethod()는 현재 실행 중인 테스트 메서드 정보를 Optional 형태로 제공하는 JUnit5의 메타데이터 API이다.이를 통해 테스트 코드 내에서 메서드 이름, 파라미터, 애노테이션 등을 직접 확인할 수 있어 로깅·조건 처리·리플렉션 기반 테스트 설정에 적극 활용할 수 있다.Optional 형태이므로 안전한 접근이 필요하며, TestInfo는 테스트 메서드, @BeforeEach, @AfterEach 등에도 주입 가능하다. 2. 기본 사용 예제import org.junit.jupiter.api.Test;import org.junit.jupiter.api.TestInfo;class TestMethodInfoExample { ..
1. getTestClass()란 무엇인가TestInfo.getTestClass()는 현재 실행 중인 테스트가 속해 있는 테스트 클래스 정보를 Optional> 형태로 제공하는 메서드다.테스트 이름이나 태그뿐 아니라, 테스트가 어떤 클래스에서 실행되고 있는지를 런타임에 파악할 수 있어 로깅, 공통 동작 처리, 리플렉션 기반 테스트 설정에 활용되기 좋다.Optional로 감싸져 있으므로 값이 없을 가능성도 처리해야 한다. 2. 기본 사용 예제import org.junit.jupiter.api.Test;import org.junit.jupiter.api.TestInfo;class TestClassInfoExample { @Test void testClassInfo(TestInfo testInfo)..
