테스트 코드는 기능의 문제나 오류를 찾아내 주는 코드를 말한다. 유닛 테스트(단위테스트)란 하나의 기능 또는 메소드를 기준으로 독립적으로 실행되는 테스트이다.
JUnit
Junit이란 자바기반언어의 개발자들이 사용하는 테스트 프레임워크이다. 확인하고 싶은 결과가 있을 때마다 번거롭게 print를 사용하지 않아도 된다. 단정(assert) 메소드로 테스트 케이스의 수행 결과를 판별하고 어노테이션으로 간결하게 지원한다.
단정 메서드
- assertArrayEquals(a, b): 배열 A와 B가 일치함을 확인
- assertEquals(a, b): 객체 A와 B가 같은 값을 가지는지 확인
- assertEquals(a, b, c): 객체 A와 B가 값이 일치함을 확인( a: 예상값, b:결과값, c: 오차범위)
- assertSame(a, b): 객체 A와 B가 같은 객체임을 확인
- assertTrue(a): 조건 A가 참인지 확인
- assertNotNull(a): 객체 A가 null이 아님을 확인
어노테이션
- @Test: 이 어노테이션을 붙인 메소드는 테스트 대상이 됨
- @Test(timeout = 000): 지정된 시간 안에 테스트가 진행되지 못하면 실패하게 됨
- @Test(expected = exception지정): 지정된 exception이 발생해야 성공하게 됨
- @BeforeClass: @Before이 있는 메소드는 클래스 내에서 테스트가 시작되기 전 1회만 실행되도록 보장함
- @AfterClass: @After이 있는 메소드는 클래스 내에서 테스트 이후 1회만 실행되도록 보장함
- @Before: @Before이 있는 메소드는 테스트가 시작되기 전 수행하지만 static이 아니고 테스트 메소드가 실행되기 전에 매번 수행됨
- @After: @After이 있는 메소드는 테스트 이후 수행하지만 static이 아니고 테스트 메소드가 실행된 이후 매번 수행됨
응용 예시 코드