| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바문법
- CSS
- vscode
- ArrayList
- 인텔리제이
- 단위테스트
- list
- input
- json
- Array
- 자바
- junit
- IntelliJ
- java테스트
- junit5
- HashMap
- Eclipse
- math
- 정규식
- 테스트자동화
- 문자열
- javascript
- 자바스크립트
- html
- Visual Studio Code
- string
- 배열
- Java
- 이클립스
- js
- Today
- Total
목록junit (23)
어제 오늘 내일
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..
JUnit에서 테스트가 어떻게 실행되는지 이해하려면 run() 메소드가 수행하는 역할을 알아야 합니다.특히 JUnit3·4 기반의 테스트 러너 구조에서는 run() 메소드가 테스트 실행의 중심이었으며,JUnit5에서도 내부적으로는 비슷한 개념을 유지하고 있습니다.이번 글에서는 초보자도 이해할 수 있도록 run() 메소드가 어떤 흐름으로 테스트를 실행하는지 예제와 함께 설명합니다. 1. run() 메소드란 무엇인가?JUnit은 테스트 실행 과정을 다음과 같은 흐름으로 처리합니다.테스트 준비테스트 메소드 실행결과 수집실패/성공 여부 반환이 전체 과정을 하나의 메소드가 대표하는데, 그것이 바로 **run()**입니다.JUnit3·4에서는 다음과 같은 형태로 구성됩니다.TestCase.run()TestSuite..
JUnit5에서는 @Suite 기반으로 테스트 스위트를 구성하지만,JUnit4 시절에는 suite() 메소드를 이용해 테스트 묶음을 직접 구성하는 패턴이 널리 사용되었습니다.레거시 프로젝트나 JUnit4 기반 테스트를 유지보수하는 경우 여전히 자주 마주치는 방식입니다.이번 글에서는 JUnit4의 suite() 메소드 패턴을 중심으로 개념과 예제를 정리합니다. 1. suite() 메소드란?JUnit4에서 여러 테스트 클래스를 한 번에 묶어 실행하기 위해 사용하는 정적 팩토리 메소드입니다.테스트 클래스 안에 suite() 메소드를 만들고 그 안에서 테스트 스위트를 구성하여 반환하는 방식입니다.이 방식은 다음과 같은 특징을 가집니다.테스트를 프로그래밍적으로 구성할 수 있음필요한 테스트만 유연하게 선택 가능@R..
프로젝트가 커질수록 테스트 클래스도 함께 늘어납니다. 이때 여러 테스트 클래스를 하나로 묶어서 한 번에 실행하고 싶은 경우가 있습니다. JUnit에서는 이를 위해 TestSuite 기능(또는 @Suite)을 제공합니다.JUnit4와 JUnit5는 사용하는 방식이 조금 다르기 때문에, 이 글에서는 JUnit5 기준으로 설명하고 필요 시 JUnit4 방식도 간단히 정리합니다. 1. TestSuite란?TestSuite는 여러 개의 테스트 클래스를 하나의 그룹으로 묶어 한 번에 실행하는 기능입니다.CI/CD 환경에서 특정 기능군 테스트를 묶어서 실행하거나, 모듈별 테스트 실행 시 자주 사용됩니다.JUnit5에서는 @Suite 애너테이션을 사용하여 테스트 묶음을 구성합니다. 2. JUnit5 TestSuite ..
JUnit은 기본적으로 테스트 실행 순서를 보장하지 않습니다.테스트는 서로 독립적이어야 하므로 순서에 의존하는 테스트는 지양하는 것이 원칙입니다.하지만 실제 현업 환경에서는 순서가 필요한 경우가 존재합니다.예를 들어,회원 등록 → 회원 조회 → 회원 삭제초기 설정 테스트 → 기능 테스트같은 흐름을 그대로 테스트해야 할 때입니다.이럴 때 사용하는 기능이 바로 @TestMethodOrder입니다. 1. @TestMethodOrder란?@TestMethodOrder는 테스트 메서드의 실행 순서를 지정하는 애너테이션입니다.JUnit5에서는 순서 전략을 지정하는 방식으로 작동합니다.대표적인 두 가지 전략MethodOrderer.OrderAnnotation — 개발자가 직접 숫자로 순서 지정MethodOrderer..
JUnit 테스트를 작성하다 보면 테스트가 모두 끝난 뒤 공통으로 수행해야 하는 정리 작업이 생길 때가 있습니다. 예를 들어 데이터베이스 연결 해제, 외부 리소스 종료, 임시 파일 삭제 같은 작업입니다. 이런 작업을 매 테스트마다 반복할 필요는 없고, 테스트 전체가 끝났을 때 한 번만 수행하는 것이 효율적입니다. 이를 위해 JUnit은 @AfterAll 기능을 제공합니다.이 글에서는 @AfterAll의 역할과 사용법, 주의할 점을 초보자도 이해하기 쉽게 정리합니다. 1. @AfterAll이란?@AfterAll이 붙은 메서드는 테스트 클래스의 모든 테스트가 끝난 후 한 번만 실행되는 정리 코드입니다.보통 @BeforeAll에서 열어둔 리소스를 종료하거나 테스트 전체가 끝날 때 해야 할 마무리 작업에 사용됩..
여러 테스트를 실행할 때, 공통으로 필요한 준비 작업이 있다면 매 테스트마다 반복할 필요가 없습니다. 예를 들어 무거운 리소스 초기화, DB 연결 설정, 환경 설정 로드처럼 비용이 큰 작업이라면 한 번만 실행하는 것이 훨씬 효율적입니다. JUnit에서는 이를 위해 @BeforeAll 기능을 제공합니다.이 글에서는 @BeforeAll의 역할과 특징, 그리고 실전 예제 중심으로 쉽게 설명합니다. 1. @BeforeAll이란?@BeforeAll이 붙은 메서드는 테스트 클래스가 실행되기 전 딱 한 번만 실행되는 준비 코드입니다.테스트 전체에서 공통으로 사용할 리소스나 설정을 초기화할 때 매우 유용합니다.실행 타이밍테스트 클래스 로딩 → @BeforeAll 실행(1회) → 각 테스트 메서드 실행 2. @Befor..
