문제결제 엔티티에서 결제 승인 메서드를 실행하면 결제 승인 시간에 자동으로 현재 시간으로 넣어준다. 자동으로 넣어준 LocalDateTIme을 어떻게 테스트할지 궁금했는데, 특정 시간과 가까운지 테스트하는 코드가 있었다.상황 /** * 결제 승인 */public void approve() { this.status = PaymentStatus.APPROVED; this.approvedAt = LocalDateTime.now(); // 여기 !!!}결제 승인 메서드 실행 시 approvedAt에 현재 시간을 넣어준다.해결 전체 테스트 코드import static org.assertj.core.api.Assertions.assertThat;// ... @Test@DisplayName("결제 성공")..
JUnit
JUnit5 에서는 여러 조건에 따른 테스트 실행 여부를 결정하는 기능을 제공한다. OS, JRE, property, 환경변수 등에 따라 제어할 수 있고, 이는 org.junit.jupiter.api.condition 패키지에서 확인할 수 있다. public class OSTest { @Test @EnabledOnOs(OS.MAC) @EnabledOnJre(JRE.JAVA_17) void mac_jre17_test() { System.out.println("메롱"); } @Test @EnabledOnOs(OS.MAC) @EnabledOnJre(JRE.JAVA_20) void mac_jre20_test() { System.out.println("바보"); } @Test @EnabledOnOs(OS.WIND..