728x90
반응형
- JUnit이란?
자바 언어를 위한 테스트 프레임워크로 스프트웨어 개발 단위 테스트를 작성하고 검증하는데 사용한다.
자동화된 테스트 케이스 실행과 테스트 결과 보고를 지원한다.
품질을 향상시키고 버그를 빠르게 식별하는 데 도움을 준다.
!!! 많은 언어에서 변수 이름에 test가 들어가면 실행시키지 않고 정말 test로 돌려서 되도록 변수 이름에 쓰지 않는게 좋다.
- 테스트케이스 (Test Case) : 특정 코드 또는 기능을 테스트하는 작은 단위로 각 테스트 케이스는 하나의 메서드로 표현하고 @Test 어노테이션을 사용해서 표시한다.
- Assert메서드 : 테스트 결과를 검증하고 예상 결과와 실제 결과를 비교하고 차이가 있을 경우 테스트를 실패로 표시한다.
assertEquasl(예상 결과, 실제 결과) : 두 결과 값이 동일한 경우 테스트 성공, 값의 타입이나 내용이 다르면 테스트 실패
assertTrue(조건) : 조건이 true인지 확인하고 true라면 테스트 성공이고 false라면 실패이다.
assertFalse(조건) : 조건이 false인지 확인하고 false라면 테스트 성공이고 true라면 실패이다.
assertNotNull(객체) : 주어진 객체가 null이 아닌지 확인하고 null이 아니라면 테스트 성공이고 null이라면 테스트 실패이다.
assertNull(객체) : 주어진 객체가 null인지 확인하고 null이라면 테스트 성공이고 null이 아니라면 테스트 실패이다.
- Test Fixture(테스트 픽스쳐) : 테스트 케이스 실행을 위한 초기 설정이나 리소스를 준비하는 과정
@Before @After : 어노테이션을 사용하여 각 테스트 케이스 전 후에 실행될 메서드를 정의할 수 있도록 지원하고,
데이터 베이스 연결을 설정하거나 파일을 생성하는 작업을 수행할 수 있다. - Test Suite(테스트 스위트) : 여러 테스트 케이스를 묶어서 한 번에 실행하면 테스트 스위트 사용
@RunWith(Suite.class) : 어노테이션을 사용해서 테스트 스위트 클래스를 정의하고 그 안에서 실행할 테스트 케이스 클래스를 지정한다.
<이클립스 JUnit 설정>
1. Junit을 설정하길 원하는 Java Project 이름 위에서 우클릭하고 맨 아래 Properties 클릭
2. 다섯 번째에 있는 1.> Java Build Path를 누르고 2.>상단에 Library를 클릭하면 나오는 3.>Classpath를 누르고 오른쪽 4.> Add Libraby 클릭!

3. Library Type에서 JUnit 누르고 Next

4. JUnit library version 선택한 뒤 Finish. 끝!

<JUnit 예시>
import static org.junit.Assert.*; // 굳이 import를 여러개 둘 필요 없이 * 하나로 바꿔준다.
import org.junit.Test;
public class JunitMain {
// Test는 Main 메서드 만들지 않는다!
@Test // 아래 객체 생성 후 클릭해서 JUnit import
public void testStringEqual() {
String expected = "Hello, World!";
String actual = "Hellow, World!";
assertEquals(expected, actual); // assertEquals import
}
@Test
public void testStringInequal() {
String expected = "Hello, Java!";
String actual = "Hello, World!";
assertNotEquals(expected, actual); // assertNotEquals import
}
@Test
public void testArrayEqual() {
int[] expected = {1,2,3};
int[] actual = {1,2,3};
assertArrayEquals(expected, actual); // 배열 비교 assertArrayEquals import
}
@Test
public void testArrayInEqual() {
int[] expected = {1,2,3};
int[] actual = {3,2,1};
assertArrayEquals(expected, actual); // 배열이 다르다는 것을 검증
}
@Test
public void testDoubleEqual() {
double expected = 0.1 + 0.2;
double actual = 0.3;
assertEquals(expected, actual, 0.001); // 부동소수점 비교(오차범위를 맨 위에 지정)
}
@Test
public void testDoubleInEqual() {
double expected = 0.1 + 0.2;
double actual = 0.31;
assertNotEquals(expected, actual, 0.001); // 부동 소수점이 다르다는 것을 검증(오차범위 지정)
}
}
728x90
반응형
'Study > Back' 카테고리의 다른 글
2023.Dec.24.Sun [Spring] Annotation 어노테이션 (2) | 2023.12.24 |
---|---|
Oct.20.Fri.2023 Java 수업 34일차 sc.next(); 와 sc.nextLine(); (7) | 2023.10.20 |
Sep.20.Wed.2023 Java 수업 18일차 Network / TCP & UDP / Server Socket (55) | 2023.09.20 |
Sep.20.Wed.2023 Java 수업 18일차 이진트리 중위순회 / DFS와 BFS (1) | 2023.09.20 |
Sep.19.Tue.2023 Java 수업 17일차 Synchronized / Graph (62) | 2023.09.19 |