| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- string
- vscode
- Java
- CSS
- json
- 문자열
- junit
- 테스트자동화
- 인텔리제이
- Visual Studio Code
- javascript
- list
- 이클립스
- 자바
- 자바스크립트
- Eclipse
- 단위테스트
- HashMap
- 배열
- Array
- input
- IntelliJ
- junit5
- 자바문법
- math
- java테스트
- html
- 정규식
- js
- ArrayList
- Today
- Total
목록IT (806)
어제 오늘 내일
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에서는 공식적으로 제공되지 않으며 확장 ..
JUnit을 제대로 이해하려면 테스트가 실제로 어떻게 실행되는지, 즉 Test Runner(테스트 실행기)의 내부 동작 과정을 파악하는 것이 중요합니다.겉으로는 “Run Test” 버튼을 누르는 것처럼 보이지만, 내부에서는 다음과 같은 복잡한 실행 흐름이 진행됩니다.이번 글에서는 JUnit3 → JUnit4 → JUnit5로 이어지는 Test Runner의 진화 과정과 내부 동작 구조를 초보자도 이해할 수 있도록 정리합니다. 1. TestRunner란 무엇인가?TestRunner(테스트 실행기)는 다음 역할을 수행하는 테스트 실행 엔진입니다.테스트 클래스 및 테스트 메소드 수집@Before / @After 실행테스트 메소드 실행예외 및 실패 처리실행 결과(TestResult, Result, Listene..
JUnit의 테스트 실행 구조를 이해하려면 TestResult 객체가 어떤 역할을 하는지 알고 있어야 합니다.특히 JUnit3·4 스타일에서는 TestResult가 테스트 실행 과정에서몇 개의 테스트가 실행되었는지실패는 무엇인지어떤 예외가 발생했는지등을 모두 기록하는 핵심 클래스였습니다.JUnit5에서도 내부 개념은 유지되며, 리스너 기반의 결과 수집이 사실상 TestResult의 확장된 형태입니다.이 글에서는 TestResult가 어떤 일을 하는지, 어떻게 활용되는지, 실전 예제 중심으로 쉽게 정리합니다. 1. TestResult란 무엇인가?TestResult는 테스트 실행 결과를 저장하는 객체입니다.테스트가 실행되면 JUnit 러너는 그 결과를 TestResult에 하나씩 기록합니다.TestResul..
