단위 테스트에서는 특정 메소드의 반환값이 예상값과 같은지, 메소드 호출 시 전달되는 인자에 따라 특정 예외가 발생하는지 등을 검증해야 한다. 이를 위해 실제 if문 또는 try-catch문 등을 사용하여 직접 검증할 수도 있지만 자바에서는 보다 편리하게 이를 수행할 수 있는 방법이 존재한다. 이번 글에서는 조금 쉬어가는 타임으로 JUnit이 제공하는 검증을 위한 유틸리티 메소드인 Assertions에 대해 알아보고자 한다. 자바에서 단위 테스트를 한번이라도 해본적이 있다면 Assertions 클래스를 제공하는 2개의 패키지가 있다는 것을 알 것이다. 바로 JUnit과 AssertJ이다. 먼저 JUnit의 Assertions 메소드를 자주 사용하는 것들 위주로 살펴보자. assertEquals & asse..
이번 글에서는 JUnit에서 제공하는 Tagging과 Filtering 기능에 대해 알아보려고 한다. 자바 어플리케이션은 빌드 시 기본적으로 모든 테스트가 수행되는데 이때 태깅 기능을 통해 빌드하는 특정 환경 별로 각기 다른 테스트가 수행되도록 설정할 수 있다. JUnit에서는 테스트 클래스와 테스트 메소드를 태깅하기 위해 @Tag 어노테이션을 제공하며 이를 기반으로 실행할 테스트들을 필터링한다. Tag 문법 규칙 다음과 같이 @Tag의 value 속성으로 태그 이름을 지정하는데, 특정한 규칙을 만족하는 문자열만을 태그 이름으로 사용할 수 있다. class UnitTest { @Tag("fast") @Test void fast() { System.out.println("fast 테스트 실행"); } @T..
JUnit이란 테스트 주도 개발(TDD)에서 단위 테스트를 하기 위한 자바의 테스팅 프레임워크로, 가장 최근 버전은 JUnit5이다. JUnit5는 이전 버전과는 달리 3개의 모듈로 구성되는데 각 모듈의 간단한 기능은 다음과 같다. JUnit Platform JVM에서 테스팅 프레임워크를 실행하는 기반 플랫폼 JUnit Jupiter JUnit5에서의 테스트 작성을 위한 TestEngine으로, JUnit Vintage 엔진에서는 불가능한 parameterized, nested, dynamic tests 등이 가능함 JUnit Vintage JUnit4 또는 이전 버전과의 호환성을 위한 TestEngine JUnit은 테스트 구성을 위해 여러 어노테이션을 제공한다. 다음은 가장 많이 사용되는 기본 어노테..
저번 글에 이어서 Effective Java 스타일의 Builder 패턴과 @Builder 어노테이션에 대해 알아보자. 먼저 이번 글에서 계속해서 사용할 예제 클래스는 다음과 같다. @AllArgsConstructor(access = AccessLevel.PROTECTED) public class Home { private String basement; private String structure; //required private int door; //required private int window; //required private String roof; //required private String interior; } Effective Java의 Builder Pattern 앞의 글과는 다르게 ..
- Total
- Today
- Yesterday
- 디자인 패턴
- Front Controller
- spring aop
- Gitflow
- Transaction
- facade 패턴
- github
- mockito
- rest api
- spring
- ParameterizedTest
- servlet filter
- 전략 패턴
- vscode
- Git
- Assertions
- JPA
- C++
- Linux
- Spring Security
- 서블릿 컨테이너
- junit5
- QueryDSL
- SSE
- FrontController
- Java
- 템플릿 콜백 패턴
- spring boot
- 모두의 리눅스
- 단위 테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |