Junit에서 테스트 클래스에 테스트 메서드를 여러 개 만들고 테스트를 실행하면 테스트 메서드는 랜덤으로 실행됩니다. 하지만 테스트의 실행 순서를 원하는대로 변경할 수 있는데요. 그 방법에 대해 알아보겠습니다. 아래처럼 테스트 클래스를 작성하면 순서는 어떻게 될까요? public class OrderChangeTest { @Test @DisplayName("회원가입") void signUp() { System.out.println("회원가입"); } @Test @DisplayName("로그인") void signIn() { System.out.println("로그인"); } @Test @DisplayName("패스워드변경") void changePassword() { System.out.println("..
TDD
JUnit의 테스트 인스턴스 기본 전략은 테스트 메서드마다 독립적으로 실행하기 위해 테스트 인스턴스를 새로 만듭니다. JUnit5에서는 이러한 기본 전략을 변경할 수 있습니다. @TestInstance(LifeCycle.PER_CLASS) 테스트 클래스별로 하나의 인스턴스만 생성합니다. @TestInstance(LifeCycle.PER_CLASS) public class InstanceTest() { } @TestInstance(LifeCycle.PER_METHOD) JUnit의 기본 전략인 테스트 메서드별로 하나의 인스턴스를 생성합니다. 디폴트 값입니다. @TestInstance(LifeCycle.PER_METHOD) public class InstanceTest() { } 참고 백기선님의 더 자바, ..
안녕하세요. 이번 포스팅은 JUnit5가 제공하는 Assertions 클래스에 대해 알아보겠습니다. Assertions 클래스는 테스트 코드를 작성하고 검증하고자 하는 값을 확인하는 메서드를 모아놓은 클래스입니다. 아래의 패키지에 속한 클래스입니다. package org.junit.jupiter.api.Assertions Assertions 클래스의 메서드는 모두 static 키워드가 붙은 정적 메서드입니다. 따라서 아래처럼 import를 하고 메서드를 직접 사용할 수도 있습니다. 자세한 건 아래 예제에서 참고해주세요. import static org.junit.jupiter.api.Assertions.*; Assertions 클래스가 제공하는 대표적인 정적 메서드를 아래 예제 코드를 통해 알아보겠습니다..
안녕하세요. 이번 포스팅에서는 JUnit5에서 제공하는 기본적인 어노테이션에 대해 알아보겠습니다. 알아볼 어노테이션은 아래와 같습니다. @DisplayNameGeneration @DisplayName @BeforeAll @BeforeEach @AfterAll @AfterEach 예제 코드로 바로 확인해보겠습니다. @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) // 테스트명 언더스코어를 공백으로 보기 쉽게 보여줌 class StudyTest { /** * Junit4까지는 public class에 public void만 테스트 코드가 실행가능 했다. * 하지만 Junit5부터는 자바 리플랙션 기술로 접근 제어자를 붙이지 않아도 ..