테스트 메소드 라는 것을 나타내줌
// junit4 @Test(expected = ~~~~.class) void test() { ..... } // junit5 // junit4와 다르게 속성값 선언 X @Test void test() { ..... }
@BeforeAll : 해당 클래스에 위치한 모든 테스트 메소드 실행 전 딱 1번 실행
(Junit4 - @BeforeClass와 유사)
@BeforeEach : 해당 클래스에 위치한 모든 테스트 메소드 실행 전 실행
(Junit4 - @Before와 유사)
@AfterAll : 해당 클래스에 위치한 모든 테스트 메소드 실행 후 딱 1번 실행
(Junit4 - @AfterClass 유사)
@AfterEach : 해당 클래스에 위치한 모든 테스트 메소드 실행 후 실행
(Junit4 - @After 유사)테스트 메소드를 setup 할 때 사용하지만, 하나의 테스트 안에 여러개가 존재할 경우 // 딱 1번만 실행 // 테스트가 이 조건들에 대해 어떠한 변경도 하지않는다는 확신이 있을경우 BeforeAll 사용 @BeforeAll @Test @Test // 여러번 실행 // 테스트가 조건들에 대해 영향을 미칠때 매 테스트 실행 때마다 // 조건들이 초기화 될 수 있도록 BeforeEach 사용 @BeforeEach @Test @BeforeEach @Test
테스트를 하고싶지 않은 클래스, 메소드에 붙임
@Test @Disabled("~~~~~") // junit4의 @ignore 와 유사 void Test() { ...... }
어떤 테스트인지 표현할 수 있게 해주는 어노테이션
@Test @DisplayName("이건 ~~테스트") void Test() { ...... }
특정 테스트를 반복시키고자 할때 사용하는 어노테이션
@RepeatedTest(반복횟수) or @RepeatedTest(value = 반복횟수, name = "{displayName}, {currentRepetition}, {totalRepetitions}" @DisplayName("이건 ~~테스트") void Test() { ...... }
테스트에 여러 다른 매개변수를 대입해가며 반복 실행할 때 사용
@ParameterizedTest @CsvSource(value={....}, delimiter: ':' ) void Test() { ...... }
테스트 클래스 안에서 내부 클래스를 정의해 테스트를 계층화 할 때 사용
assertAll(()-> ... , () -> ...)