본문 바로가기
프로그래밍/자바

JUnit 4 기능 찾아보기

by pentode 2018. 5. 3.

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. 파라미터를 이용한 테스트

- 다른 값으로 동일한 테스트를 반복할 수 있습니다.

- 자세한 내용은 다음 기회에 적겠습니다.

반응형