From 181cef092f1218a756c716ac574f898ae695cdc5 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Tue, 23 Feb 2021 17:55:18 +0900 Subject: [PATCH] application test : junit5 - assertion --- .../main/java/com/example/apptest/Study.java | 22 ++++++ .../java/com/example/apptest/StudyStatus.java | 5 ++ .../java/com/example/apptest/StudyTest.java | 68 +++++++++++++++++-- 3 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 application-test/app-test/src/main/java/com/example/apptest/StudyStatus.java diff --git a/application-test/app-test/src/main/java/com/example/apptest/Study.java b/application-test/app-test/src/main/java/com/example/apptest/Study.java index f3b83af6..a80347c0 100644 --- a/application-test/app-test/src/main/java/com/example/apptest/Study.java +++ b/application-test/app-test/src/main/java/com/example/apptest/Study.java @@ -1,4 +1,26 @@ package com.example.apptest; public class Study { + + private StudyStatus status; + + private int limit; + + public Study() { + } + + public Study(int limit) { + if (limit <= 0) { + throw new IllegalArgumentException("limit은 0보다 커야 한다."); + } + this.limit = limit; + } + + public StudyStatus getStatus() { + return this.status; + } + + public int getLimit() { + return limit; + } } diff --git a/application-test/app-test/src/main/java/com/example/apptest/StudyStatus.java b/application-test/app-test/src/main/java/com/example/apptest/StudyStatus.java new file mode 100644 index 00000000..48af3e3d --- /dev/null +++ b/application-test/app-test/src/main/java/com/example/apptest/StudyStatus.java @@ -0,0 +1,5 @@ +package com.example.apptest; + +public enum StudyStatus { + DRAFT, STARTED, ENDED +} diff --git a/application-test/app-test/src/test/java/com/example/apptest/StudyTest.java b/application-test/app-test/src/test/java/com/example/apptest/StudyTest.java index f5e6ed89..cc47e234 100644 --- a/application-test/app-test/src/test/java/com/example/apptest/StudyTest.java +++ b/application-test/app-test/src/test/java/com/example/apptest/StudyTest.java @@ -2,13 +2,69 @@ package com.example.apptest; import org.junit.jupiter.api.*; +import java.time.Duration; + import static org.junit.jupiter.api.Assertions.*; @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) class StudyTest { @Test + @DisplayName("assertTimeout test") + void test_4() { + assertTimeoutPreemptively(Duration.ofMillis(100), () -> { + Thread.sleep(300); + new Study(10); + }); + // assertTimeout( 시간, 실행구문 ) + // 실행 구문이 끝날 때 까지 기다렸다가 결과를 출력한다. + assertTimeout(Duration.ofMillis(100), () -> { + Thread.sleep(300); + new Study(10); + }); + } + + @Test + @DisplayName("assertThrows test") + void test_3() { + // 리턴 값은 해당 예외 타입이다. + IllegalArgumentException exception = + assertThrows(IllegalArgumentException.class, () -> new Study(-10)); + + // 에러 메시지 확인도 가능하다 + assertEquals("limit은 0보다 커야 한다.", exception.getMessage()); + } + + @Test + @DisplayName("assertAll test") + void test_2() { + Study study = new Study(-10); + + assertAll( + () -> assertTrue(study.getLimit() > 0, "스터디 최대 참석 가능 인원은 0보다 커야 한다."), + () -> assertEquals(StudyStatus.DRAFT, study.getStatus(), "스터디를 처음 만들면 status가 DRAFT 이어야 한다.") + ); + } + + @Test + @DisplayName("assertTrue test") + void test_1() { + Study study = new Study(10); + // assertTrue( 조건, 실패시 출력 메시지 ) + assertTrue(study.getLimit() > 0, "스터디 최대 참석 가능 인원은 0보다 커야 한다."); + } + + @Test + @DisplayName("assertEquals test") + void test() { + Study study = new Study(); + // assertEquals( 기대값, 실제값, 실패시 메시지 ) + + assertEquals(StudyStatus.DRAFT, study.getStatus(), "스터디를 처음 만들면 status가 DRAFT 이어야 한다."); + } + + @Test void create_new_study() { Study study = new Study(); assertNotNull(study); @@ -21,12 +77,12 @@ class StudyTest { System.out.println("create1 테스트"); } -// // @Disabled : 모든 테스트 실행 시 테스트 제외 -// @Test -// @Disabled -// void create2() { -// System.out.println("create2 테스트"); -// } + // @Disabled : 모든 테스트 실행 시 테스트 제외 + @Test + @Disabled + void create2() { + System.out.println("create2 테스트"); + } // // /** // * 모든 테스트 실행 전에 한번 실행