JUnit 4

Java - 간단한 예외처리 테스트

이 글은 Junit5.8.1, assertj3.21 기준으로 작성되었습니다. 1. assertThrows Assertions.assertThrow는 예상가능한 Exception를 던지고, 그 Exception을 반환합니다. 이 때 예외가 발생하지 않거나 다른 유형의 예외가 발생한다면 메서드는 실패하게 됩니다. 코드로 살펴보면 import static org.junit.jupiter.api.Assertions.assertThrows; @Test void test1( { Assertions.asserThrows(RuntimeException.class, () -> { voyage.test(); }); } 람다식으로 voyage.test() 메서드를 실행하여 첫 인자인 RuntimeException과 같은지 ..

Skills/Java 2022.11.12

Spring - 테스트 코드(TDD) 작성

어떤 소프트웨어를 개발한다고 할 때, 소프트웨어의 기능에서 무언가 필요하다거나 잘못된 점이 무엇인지 찾아내는 것부터 시작할 것입니다. 이어서 문제점을 찾은 개발자는 그것을 해결하는 기능을 구현하고, 구현의 검증을 위한 테스트를 수행하게됩니다. 이 때, 고전적인 개발 방식에서는 검증을 위해 console 화면에 값을 찍어 기능이 동작하는지 확인해볼 것입니다. 눈에 보이는 확실한 방법이지만 이러한 방식은 개발자의 두뇌에 의존해야 하는 맹점(?)이 있습니다. 사람이 판단하고, 사람에게 의존하는지라 실수가 언젠가는 하나씩 발견될 수도 있을 것입니다. 또한 작업 분량이 많아질 수록 로그를 찾아내기 힘들고, 귀찮아져 간소화하는 일이 생길 수도 있게되는 것이죠. 그래서 구안된 방식이 테스트 주도 개발(Test-Dr..

Skills/Spring 2022.08.02

Spring - MockMvc를 이용한 HTTP 메시지 검증

1. MockMvc MockMvc는 웹 애플리케이션을 애플리케이션 서버에 배포하지 않고 Test용 MVC환경를 만들어 요청 및 전송 응답(HTTP request) 기능을 제공해주는 유틸리티 클래스입니다. 2. 사용 예 먼저 MockMVc 생성을 해주고, perform() 메서드를 이용해 요청 설정 메서드를 통해서 요청에 대한 설정을 할 수 있습니다. 이 때 요청에 대한 설정은 param, cookie, request * sessionAttr (객체설정), content(요청 본문 설정) 등 다양합니다. 2.1 .andExpect .andExpect() 메서드는 응답을 검증하는 메서드로 뒤에 패러미터에 따라 검증하는 값을 바꿀 수 있습니다. isOk() : 200, isNotFound() : 404 등....

Skills/Spring 2022.07.24

Spring - @RunWIth, @ExtendWith

1. Junit4 @RunWith Junit4에서는 @RunWith(클래스이름.class) 애노테이션으로 Junit Test 클래스를 실행하기 위한 Runner를 명시적으로 지정하여 Test code를 커스터마이징합니다. 여기서 Test Runner는 테스트 클래스 내에 존재하는 각 테스트 메서드 실행을 담당하고 있는 클래스입니다. 이는 테스트 클래스의 구조에 맞게 메서드를 실행하고 결과를 표시하는 역할을 수행합니다. 원래는 Juni4의 기본 테스트 러너는 BlockjUnit4ClassRunner이지만 대신에 @RunWith로 지정된 클래스를 이용해 클래스 내 테스트 메서드를 수행하도록 지정하여 사용합니다. 2. Junit5 그런데 Junit5부터는 @RunWith 애노테이션이 아닌 Extension이라..

Skills/Spring 2022.07.22