ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUnit 5. Assertion
    BackEnd/JUnit 2022. 1. 30. 17:05
    반응형
    import static org.junit.jupiter.api.Assertions.*;
    • assertEqulas(expected, actual): 실제 값과 기대한 값이 같은지 확인합니다.
    • assertNotNull(actual): 값이 null이 아닌지 확인합니다.
    • assertTrue(boolean): 조건이 참(true)인지 확인합니다.
    • assertAll(executables...): 모든 구문을 확인합니다. (기본적으로 예외 발생 시 더이상 실행이 되지 않습니다.)
    • assertThrows(expectedType, executable): 예외가 발생되었는지 확인합니다.
    • assertTimeout(duration, executable): 특정 시간 안에 실행이 완료되었는지 확인합니다.
    package com.java.JUnit5;
    
    import org.junit.jupiter.api.*;
    import org.springframework.boot.test.context.SpringBootTest;
    
    import java.time.Duration;
    
    import static org.junit.jupiter.api.Assertions.*;
    
    @SpringBootTest
    class AssertionTests {
    
    	@Test
    	void contextLoads() {
    		Start start = new Start(1);
    		assertEquals(Status.STARTED, start.getStatus(), "상태가 맞지 않습니다."); // 테스트 실패 시 message 출력
    		System.out.println("예외 발생 시 더이상 수행되지 않습니다.");
    		assertNotNull(start);
    		assertTrue(start.getLimit() > 0);
    	}
    
    	@Test
    	void assertAllTest() {
    		Start start = new Start(1);
    		assertAll(
    				() -> assertEquals(Status.STARTED, start.getStatus(), "상태가 맞지 않습니다."),
    				() -> assertNotNull(start),
    				() -> System.out.println("모든 구문을 확인합니다."),
    				() -> assertTrue(start.getLimit() > 0)
    		);
    	}
    
    	@Test
    	void assertThrowTest() {
    		IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> new Start(-1));
    		String message = exception.getMessage();
    		assertEquals("limit은 0보다 커야합니다.", message);
    	}
    
    	@Test
    	void asesrtTimeoutTest() {
    		assertTimeout(Duration.ofSeconds(1), ()-> {
    			new Start(1);
    			Thread.sleep(1100);
    		});
    	}
    }

    [전체 소스코드]

     

    [참고]

    반응형

    'BackEnd > JUnit' 카테고리의 다른 글

    JUnit 5. 테스트 인스턴스  (0) 2022.02.03
    JUnit 5. 반복문  (0) 2022.02.03
    JUnit 5. Tag  (0) 2022.01.31
    JUnit 5. 조건문  (0) 2022.01.31
    JUnit 5  (0) 2022.01.30

    댓글

Designed by Tistory.