Java JUnit5

김정훈·2024년 6월 5일

Java

목록 보기
46/48

테스트
1) 단위 테스트 : 기능 단위 별 테스트 (Junit5)
2) 통합 테스트 : 모든 기능을 통합, 유기적으로 잘 동작하는지 테스트

1. 의존성

1) maven

junit-jupiter - dependency
maven-surefir-plugin - plugin

2) grade

dependencies {
    testImplementation platform('org.junit:junit-bom:5.10.2')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
    useJUnitPlatform()
}

2. @Test 애노테이션

1) 테스트로 사용할 클래스를 만들고 @Test 애노테이션을 메서드를 붙이면 테스트 가능
2) @Test 애노테이션을 붙인 메서드는 private이면 안 된다.

참고)

테스트용 클래스 👉 명칭Test 관례

3. 테스트 메서드 : 주요 단언 메서드

  • assertEquals(expected, actual) : expected(예상값), actual(실제값) 일치 여부
    (equals and hashcode : 동등성)

  • assertNotEquals(unexpected, actual) : 예상했던 값과 다르면 통과

  • assertSame (Object expected, Object actual) : 예상했던 객체(expected)와 실
    제객체(actual) 일치 하는지 체크(==)

  • assertNotSame(Object unexpected, Object actual)

  • assertTrue(boolean condition) : true가 나오면 통과

  • assertFalse(boolean condition) : false가 나오면 통과

  • assertNull(Object actual) : null이 나오면 통과

  • assertNotNull(Object actual) : null이 나오지 않으면 통과

  • fail() : 특정 상황에서 테스트 실패를 유도하는 경우

  • assertThrows(Class<T> expectedType, Executable executable)
    expectedType - 발생 예상되는 예외 클래스 클래스
    executable - 실행코드

  • assertDoesNotThrow(Executable executable) : 실행 코드 실행 시 예외가 발생 하지 않으면 통과
    executable - 실행코드

  • assertAll(Executable... executable) :

4. 테스트 라이프사이클

  • @BeforeEach : 각각의 단위 테스트 메서드 실행 전에
  • @AfterEach : 각각의 단위 테스트 메서드 실행 후에
  • @BeforeAll : 모든 단위 테스트 메서드 실행 전(한번만 실행), 정적 메서드로 정의
  • @AfterAll : 모든 단위 테스트 메서드 실행 후(한번만 실행), 정적 메소드로 정의
beforeAll
Before Each
태스트1번 진행
After Each
Before Each
테스트2번 진행
After Each
afterAll

5. 추가 애노테이션

  • @DisplayName : 테스트에 대한 설명

  • @Disabled : 테스트 배제

6. 모든 테스트 실행하기

mvn test

mvn package : 컴파일 👉 테스트 👉 배포(jar)

gradle test

gradle build : 컴파일 👉 테스트 👉 배포(jaR)

7. 참고

1) TDD

TDD(Test Driven Development) : 테스트 주도 개발
테스트 하기 위한 시나리오 👉 필요한 기능을 개발 👉 테스트 실행 👉 통과❌ 👉 기능보완(리팩토링) 👉 통과 👉 기능완성

2) 테스트 시나리오

간단한 시나리오 👉 복잡한 시나리오

3) 지속적인 리팩토링

코드의 수정 보완

profile
안녕하세요!

0개의 댓글