JUnit를 공부하는 중에 사용되는 기능들을 빠르게 찾아보기 위해서 정리를 했습니다. JUnit 4 버전을 기준으로 작성을 하였고, 관련된 JUnit 3에서의 사용법도 조금 적었습니다.
1. 테스트 케이스(TestCase) 만들기
- 메소드에 @Test 아노테이션을 붙이면 됩니다.
- JUnit3 에서는 TestCase 클래스를 상속해서 test로 시작하는 메소드를 만들면 됩니다.
2. 픽스쳐 만들기
- @Before, @After 아노테이션으로 사전, 사후 실행될 메소드를 지정합니다. 매 테스트 메소드 마다 전후에 실행됩니다.
- @BeforeClass, @AfterClass는 테스트 케이스 클래스에서 처음과 끝에 한번만 실행됩니다. 이 아노테이션이 지정된 메소드는 static 메소드여야 합니다. 그 이유는 테스트 메소드 실행은 독립성을 보장하기 위해서 테스트 메서드가 실행될때마다 테스트 케이스 클래스가 생성되어 집니다. 이러한 환경에서 모든 새로 생성되는 객체에게 동일한 무언가를 제공하는 방법을 static 멤버를 사용하는 것이기 때문입니다.
- JUnit3에서는 setUp(), tearDown() 메소드를 사용합니다.
3. 특정 예외가 발생하면 테스트 성공
- @Test(expected=Exception.class)
4. 테스트 수행 시간 제한
- 지정된 시간의 단위는 밀리초(ms)이며 시간안에 실행이 안되면 실패를 반환합니다.
- @Test(timeout=1000)
5. 테스트 메소드를 실행하기 않도록 지정하기
- @Ignore 아노테이션이 있으면 테스트 메소드를 실행하지 않습니다.
6. 지원되는 단정문
* 인자가 Object타입일 경우는 equals메소드를 사용하여 비교합니다.
- assertEquals([message,] expected, actual) : 두 값이 같으면 성공입니다.
- assertEquals([message,] double expected, double actual, double delta) : 오차 범위내의 값은 동일한 값으로 판단합니다.
* 주소값으로 비교합니다. 한 객체의 참조 인지 확인합니다.
- assertSame([message,] expected, actual) : 동일주소이면 성공입니다.
- assertNotSame([message,] exptected, actual) : 주소가 다르면 성공입니다.
- assertArrayEquals([message,] expected, actual) : 주어진 배열을 순서대로 비교하여 모두 동일하면 성공입니다.
- assertTrue([message, ] expected) : 참이면 성공입니다.
- assertFalse([message,] expected) : 거짓이면 성공입니다.
- assertNull([message,] expected) : null 이면 성공입니다.
- assertNotNull([message,] expected) : null이 아니면 성공입니다.
- fail([message]) : 항상 실패입니다.
7. @RunWith(class_name.class)
- 사용자 지정 Runner를 사용할 수 있습니다.
- 기본값은 BlockJUnit4ClassRunner입니다.
- 스프링프레임워크에서는 @RunWith(SpringJUnit4ClassRunner.class)를 사용합니다.
8. 여러개의 테스트케이스를 실행기위해서 테스트 슈트를 지정합니다.
- @SuiteClasses(Class[])
9. 파라미터를 이용한 테스트
- 다른 값으로 동일한 테스트를 반복할 수 있습니다.
- 자세한 내용은 다음 기회에 적겠습니다.
'프로그래밍 > 자바' 카테고리의 다른 글
Java에서 UUID 클래스를 사용하여 유일한 식별자 생성하기 (2) | 2018.05.24 |
---|---|
Java에서 assert 사용하기 (3) | 2018.05.04 |
Oracle JDK 라이센스와 OpenJDK (2) | 2018.04.26 |
자바 MD5, SHA-256, AES256 암호화 하기 (30) | 2018.04.25 |
자바(Java) - static import 사용하기 (0) | 2018.04.23 |