JUnit
2020. 3. 30. 22:31ㆍJava/Test
728x90
JUnit이란
JUnit의 개념
JUnit이란 Java의 대표적인 Unit Test 도구입니다. Testing 결과를 단순히 문서로 남기는 것이 아니라 Test Class를 그대로 남김으로써 나중에 개발자에게 테스트 방법 및 클래스의 History를 그대로 넘겨줄 수 있습니다.
JUnit의 특징
- Unit Test Framework 중 하나
- 단정문으로 테스트 케이스의 수행 결과를 판별
- Annotation으로 간결하게 사용 가능
- @Test 메서드가 호출할 때마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어짐
Junit의 대표적인 판별 메소드들
Method | 내용 |
assertArrayEquals(a,b) | 배열 a와 b가 일치함을 확인 |
assertEquals(a, b) | 객체 a와 b의 값이 같음을 확인 |
assertSame(a,b) | 객체 a와 b가 같은 객체임을 확인 |
assertTrue(a) | a가 True인지 확인 |
assertFalse(a) | a가 False인지 확인 |
assertNotNull(a) | a가 Null이 아님을 확인 |
Junit Function Flow
- setUp(): 테스트 대상 클래스의 실행 전에 가장 먼저 setUp을 실행
- teardown(): 가장 마지막에 수행되며 setup()의 반대 개념
- setup()과 teardown()은 Test Case를 진행할 때마다 반복적으로 실행됨
Junit Annotation
@Test
해당 Method는 Test대상 메소드임을 의미
public class Example {
@Test
public void method() {
org.junit.Assert.assertTrue( new ArrayList().isEmpty() );
}
}
@BeforeClass
해당 테스트가 시작 전에 딱 한 번씩만 수행되도록 지정
public class Example {
@BeforeClass public static void onlyOnce() {
...
}
@Test public void one() {
...
}
@Test public void two() {
...
}
}
@AfterClass
해당 테스트가 끝나고 딱 한 번씩만 수행되도록 지정
public class Example {
DatabaseConnection database;
@BeforeClass public static void login() {
database= ...;
}
@Test public void something() {
...
}
@Test public void somethingElse() {
...
}
@AfterClass public static void logout() {
database.logout();
}
}
@Before
해당 테스트가 진행이 시작되기 전에 작업할 내용을 호출
public class Example {
List empty;
@Before public void initialize() {
empty= new ArrayList();
}
@Test public void size() {
...
}
@Test public void remove() {
...
}
}
@After
해당 테스트가 진행이 끝난 후에 작업할 내용을 호출
public class Example {
File output;
@Before public void createOutputFile() {
output= new File(...);
}
@Test public void something() {
...
}
@After public void deleteOutputFile() {
output.delete();
}
}
@Ignore
Test Case를 무시할 수 있음
@Ignore
public class IgnoreMe {
@Test public void test1() { ... }
@Test public void test2() { ... }
}
728x90