JAVA/Test

    [자바 Spring] 단위 테스트, 슬라이스 테스트 등 테스트의 기초에 대해 알아보자

    먼저 테스트들의 종류부터 확인하고 시작하겠습니다. 다음 그림을 통해 각 테스트가 맡고 있는 역할을 짐작할 수 있을 것입니다. # 기능 테스트 기능 테스트는 테스트 중 가장 큰 단위를 가지고 있는 테스트로, 주로 애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지를 테스트합니다. 기능 테스트의 경우 API 툴이나 데이터베이스까지 연관되어 있어서 HTTP 통신도 해야되고, 데이터베이스 연결도 해야 되며 그림 상에는 보이지 않지만 외부 서비스와도 연동될 수 있기때문에 얽혀있는 것이 많은 테스트라고 볼 수 있습니다. # 통합 테스트 기능 테스트는 테스트를 하는 주체가 주로 개발자 이외의 제 3자인 반면에 통합 테스트는 애플리케이션을 만든 개발자 또는 개발팀이 테스트의 주체가..

    [자바 Spring] 가독성 좋은 테스팅 기법 Hamcrest의 기초 사용 방법

    Hamcrest는 Junit 기반의 소프트웨어 테스트 작성 지원 프레임워크입니다. 다양한 Matcher를 제공하여 간결하고 가독성 있는 코드로 테스트할 수 있게 지원합니다. Hamcrest는 다음과 같은 이유로 Junit에 지원하는 Assertion 메서드 보다 최근 더 많이 사용됩니다. Assertion을 위한 매쳐(Matcher)가 자연스러운 문장으로 이어지므로 가독성이 향상 된다. 테스트 실패 메시지를 이해하기 쉽다. 다양한 Matcher를 제공한다. 이해를 돕기위해 이미 Junit Assertion로 작성된 코드를 Hancrest 방식으로 변환하며 설명하겠습니다. import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Asse..

    [Spring 자바] Junit 테스트 순서 지정하는 방법

    우리가 일반적으로 Junit을 통해 테스트를 진행하고자 할 때, 각각의 메서드의 순서를 정해주고 싶을 때가 있을 것입니다. 그 떄 @TestInstance(Lifecycle.PER_CLASS)와 @TestMethodOrder를 동시에 사용한다면 순서 지정이 가능합니다. public class HelloJUnitTest { @Test public void four() { System.out.println("네번째 테스트였으면 좋겠습니다."); } @Test public void first() { System.out.println("첫번째 테스트였으면 좋겠습니다."); } @Test public void third() { System.out.println("세번째 테스트였으면 좋겠습니다."); } @Test..