- 테스트 결과가 예상과 같은지 판별해주는 단정문(assertions)
- 여러 테스트에서 공용으로 사용할 수 있는 테스트 픽스처(test fixture)
- 테스트 작업을 수행할 수 있게 해주는 테스트 러너(test runner)
- assertEqulas([message], expected, actual)
- assertTrue([message], expected) / assertFasle([message], expected)
- assertNull([message], expected) / assertNutNull([message], expected)
static public void assertEquals(String message, Object expected, Object actual) {
if (expected == null && actual == null) return;
if (expected != null && expected.equals(actual)) return;
failNotEquals(message, expected, actual);
}
assertEquals ([message], double expected, double actual, double delta)
assertSame([message], expected, actual)
assertNotSame([message], expected, actual)
static public void assertSame(String message, Object expected, Object actual) {
if (expected == actual) return;
failNotSame(message, expected, actual);
}
- Java5 애노테이션 지원
- test라는 글자는 method 이름을 시작해야한다는 제약 해소
Test 메소드는 @Test를 붙잍다.- 좀 더 유연한 픽스처
@BeforeClass, @AfterClass, @Before, @After- 예외 테스트
@Test(expected=NumberFormatException.class)- 시간 제한 테스트
@Test(timeout=1000)- 테스트 무시
@Ignore("this method isn't working yet")- 배열 지원
assertArrayEqulas[message], expected, actual)- @RunWith(클래스이름.class)
Runner를 명시적으로 지정- @SuitClasses(Class[])
여러개의 테스트 클래스를 수행하기 위해 사용됨- 파라미터를 이용한 테스트
@RunWith(Paramterized.class)
@Parameters
assertThat(customer.getName(), is("YK"));
assertEquals 보다는 assertThat 구문 사용을 권장한다.
// import static 꼭 필요해요~
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
assertThat(테스트 대상, Matcher 구문)
assertThat("메시지", 테스트대상, Matcher 구문)