
JUnit
자바 프로그래밍 언어용 단 테스트 프레임워크입니다. 테스트시 테스트 결과는 Test클래스로 개발자에게 테스트 방법 및 클래스의 History를 공유 가능합니다. 또한 단정(assert) 메서드로 테스트 케이스의 수행 결과를 판별하며 JUnit4부터 어노테이션으로 간결하게 지원을 하여 쉽게 사용할 수 있습니다.
단위 테스트란?
프로그래밍에서 모든 함수와 메서드에 대한 테스트 케이스를 작성하여 의도된 대로 잘 동작하는지 검증하는 절차입니다. 프로그램을 작은 단위로 쪼개어 각 단위가 정확하게 동작하는지 검사하여 프로그램의 안정성을 높일수 있습니다. 또한 System.out.println()으로 하는 번거로운 디버깅이 필요없기 때문에 개발기간 중 대부분을 차지하는 디버깅 시간을 단축할 수 있습니다.
🏷️ 단정 메서드
✅ assertArrayEquals(a, b)
배열 A와 B가 일치함을 확인합니다.
✅ assertEquals(a, b)
객체 A와 B가 같은 값을 가지는지 확인합니다.
✅ assertEquals(a, b, c)
객체 A와 B가 값이 일치함을 확인( a: 예상값, b:결과값, c: 오차범위)합니다.
✅ assertSame(a, b)
객체 A와 B가 같은 객체임을 확인합니다.
✅ assertTrue(a)
조건 A가 참인지 확인합니다.
✅ assertNotNull(a)
객체 A가 null이 아님을 확인합니다.
🏷️ 기본 어노테이션
✅ @Test
테스트를 만드는 모듈 역할입니다.
✅ @DisplayName
테스트 클래스 또는 테스트 메서드의 사용자 정의 표시 이름을 정의합니다.
✅ @ExtendWith
사용자 정의 확장명을 등록하는데 사용합니다.
✅ @BeforeEach
각 테스트 메서드 전에 실행됨을 나타냅니다.
✅ @AfterEach
각 테스트 메서드 후에 실행됨을 나타냅니다.
✅ @BeforeAll
현재 클래스의 모든 테스트 메서드 전에 실행됨을 나타냅니다.
✅ @AfterAll
현재 클래스의 모든 테스트 메서드 후에 실행됨을 나타냅니다.
✅ @Disable
테스트 클래스 또는 메서드를 비활성화합니다.
🏷️ 테스트 방법
@DisplayName("test 입니다.")
@Test
void test() {
// given
// given에서는 값을 초기화 하는 등의 전처리 작업을 한다.
// when
// when에서는 우리가 목표로 하는 기능을 동작시킨다.
// then
// then에서는 우리가 원한 결과가 나왔는지 확인한다.
}
📖 Reference
✔️ IntelliJ에서 test폴더가 없어서 테스트 환경 설정해야 하는 경우
'코딩 공부 > web & Java' 카테고리의 다른 글
[Java] 테스트 더블(Test Double) (feat. Mock, Stub) (1) | 2023.12.16 |
---|---|
[Java] Mockito (1) | 2023.12.15 |
[Web] JWT (1) | 2023.12.08 |
[Spring/Web] CSRF (1) | 2023.12.04 |
[Spring / Web] CORS (1) | 2023.12.01 |