JUnit이란 자바 단위 테스트 도구이다
JUnit API : junit.org/junit4/javadoc/4.12/org/junit/experimental/categories/Categories.html
버전별 링크 : mvnrepository.com/artifact/junit/junit
Maven Repository: junit » junit
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck. VersionRepositoryUsagesDate4.13.x4.13Central5,037Jan, 20204.13-rc-2Central56Dec, 20194.13-rc-1Central54Oct, 20194.13-beta-3Central298May, 20194.13-beta-2Central118Feb, 20194.
mvnrepository.com
BuildPath를 통한 추가방법(추천)
프로젝트>Build Path>Configure Build Path
Add Library>JUnit 클릭
#Maven프로젝트 pom.xml에 추가
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
#Gradle프로젝트 Build.gradle의 dependencies에 추가
dependencies {
// https://mvnrepository.com/artifact/junit/junit
testCompile group: 'junit', name: 'junit', version: '4.12'
}
#테스트 방법
테스트할 클래스 오른쪽마우스>New>Other 클릭
Java>JUnit>JUnit Test Case 선택후 다음
테스트할 JUnit버전 선택
테스트 패키지 이름은 테스트 대상 패키지와 동일하며 바꿔도 되고 안바꿔도 됩니다
테스트할 메서드 선택후 완료
test/java폴더 안에 패키지와 클래스 메서드가 자동 생성된 모습
테스트를 실행 할 클래스>Run As>JUnit Test 실행 (클래스내 @Test 어노테이션이 존재해야 보인다)
문제가 없다면 초록색, 문제가 있다면 빨간색 결과창을 보여줍니다
테스트할 클래스와 테스트를 하는 클래스는 패키지가 달라도 상관없지만
일반적으로는 개발환경과 동일 조건에서 테스트하기 위해 같은 위치에 작성해서 테스트합니다(사진은 다른위치)
#JUnit이 제공하는 메서드가 있는데 이것을 단정(assert Method) 메서드라고 합니다
단정 메서드 리스트 : junit.sourceforge.net/javadoc/org/junit/Assert.html
assertEquals(A, B);//객체 A와 B의 값이 일치하는가
assertSame(A, B);//객체 A와 B가 일치하는가
assertArrayEquals(A, B);//배열 A,B가 일치하는가
assertNotNull(A);//객체 A가 null인가 아닌가
assertTrue(A);//객체가 true인지 확인
JUnit은 해당 메서드를 통과하지 못하면 에러를 던집니다
#JUnit 어노테이션 종류
JUnit4/JUnit5 순서
- @Test()/@Test : Test할 대상
- @BeforeClass/@BeforeAll : 테스트 클래스가 실행될 때 실행 됨
- @AfterClass/@AfterAll : 테스트 클래스가 종료될 때 실행 됨
- @Before/@BeforeEach : @Test메서드가 실행될때 실행 됨
- @After/@AfterEach : @Test메서드가 종료될때 실행 됨
- @lgnore/@Disabled : 해당 테스트 메서드는 실행하지 않음
package com.example.demo;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.example.demo.controller.Calcurator;
public class JUnitTest2 {
@BeforeClass//테스트 클래스가 실행 될때 실행 됨
public static void beforeClassTest() {
System.out.println("BeforeClass");
}
@Before//@Test메서드가 실행될 때 실행 됨
public void beforeTest() {
System.out.println("Before");
}
@After//@Test 메서드가 종료될 때 실행 됨
public void afterTest() {
System.out.println("after");
}
@AfterClass//테스트 클래스가 종료 될때 실행됨
public static void afterClassTest() {
System.out.println("AfterClass");
}
@Test
public void calcuratorTest() {
Calcurator calcurator = new Calcurator();
double plus = calcurator.plus(10, 20);
System.out.println("plus : " + plus);
}
@Test
public void calcuratorTest1() {
Calcurator calcurator = new Calcurator();
double minus = calcurator.minus(10, 20);
System.out.println("minus : " + minus);
}
}
@Test() 어노테이션은 여러 조건을 설정할 수 있다(JUnit5부터는 사용이 불가능 하다)
- @Test(timeout = 1000) : 해당 테스트 메서드는 1000밀리초를 넘으면 에러를 던짐(시간은 임의설정 가능)
- @Test(expected = RuntimeException.class) : 해당 테스트 메서드는 RuntimeException이 발생해야 통과
'Programming > JAVA' 카테고리의 다른 글
[JAVA] WrapperClass(래퍼 클래스) (0) | 2020.10.04 |
---|---|
[JAVA] 정규표현식 (0) | 2020.10.01 |
[lombok] 롬복 설치 방법 (0) | 2020.09.23 |
[JAVA] String, StringBuffer, StringBuilder (0) | 2020.09.23 |
[JAVA] 프로그래밍 네이밍 규칙 (0) | 2020.09.17 |