JUnit 4.4에 추가된 assertThat()
모하니?/Coding : 2008. 7. 8. 15:44
참조
http://junit.sourceforge.net/doc/ReleaseNotes4.4.html
흠.. 맨날 쓰는 메소드만 쓰다보니까, 새로운 기능들을 전혀 몰랐네요;
assertThat() 처럼 멋진 메소드를 이제야 알게 됐습니다.
보통 값을 비교할 때 assertEquals()를 사용해서
assertEquals(new Integer(2), game.getLeastTryCount());
이런식으로 값을 비교합니다. 메소드에 넘겨주는 첫 번째 인자가 기대값이고 뒤에 오는 인자가 실제 값인데, 사실 인자들의 순서가 바껴도 테스트 목적에는 별 다른 지장을 주지 않습니다. 위에서 테스트한 것과 동일한 내용을 assertThat()을 사용하여 다음과 같이 작성할 수 있습니다.
assertThat(game.getLeastTryCount(), is(2));
코드를 한 번 읽어보시죠. 훨씬 좋치 않나요? 위에서 사용한 is() 라는 메소드는 JUnit이 처음로 의존성을 가지고 사용하는 제 3자의 클래스들 입니다. Hamcrest라는 프로젝트 인데, Matcher를 확장한 다양한 메소드들을 제공해주고 있습니다. 그 중 하나가 is() 입니다. 따라서 import 문이 필요한데, 위에서 is만 사용한거 보니까 static import 겠거니.. 하고 짐작을 하셨겠죠?
import static org.hamcrest.CoreMatchers.*;
이렇게 추가해주시면 됩니다.
문장이 읽기 좋다는 장점 외에도 다음과 같은 장점들이 있습니다.
- 콤비네이션 가능. is(not(3)) 이나 eather(2).or(3) 같은 조합을 이뤄서 사용할 수 있음.
- assertEquals() 보다 더 가독성 높은 에러 메시지.
- 커스텀 매처 사용하능.
JUnit 4.4 가 제공하는 매처들
- org.hamcrest.CoreMatchers
- org.junit.matchers.JUnitMatchers.
http://junit.sourceforge.net/doc/ReleaseNotes4.4.html
흠.. 맨날 쓰는 메소드만 쓰다보니까, 새로운 기능들을 전혀 몰랐네요;
assertThat() 처럼 멋진 메소드를 이제야 알게 됐습니다.
보통 값을 비교할 때 assertEquals()를 사용해서
assertEquals(new Integer(2), game.getLeastTryCount());
이런식으로 값을 비교합니다. 메소드에 넘겨주는 첫 번째 인자가 기대값이고 뒤에 오는 인자가 실제 값인데, 사실 인자들의 순서가 바껴도 테스트 목적에는 별 다른 지장을 주지 않습니다. 위에서 테스트한 것과 동일한 내용을 assertThat()을 사용하여 다음과 같이 작성할 수 있습니다.
assertThat(game.getLeastTryCount(), is(2));
코드를 한 번 읽어보시죠. 훨씬 좋치 않나요? 위에서 사용한 is() 라는 메소드는 JUnit이 처음로 의존성을 가지고 사용하는 제 3자의 클래스들 입니다. Hamcrest라는 프로젝트 인데, Matcher를 확장한 다양한 메소드들을 제공해주고 있습니다. 그 중 하나가 is() 입니다. 따라서 import 문이 필요한데, 위에서 is만 사용한거 보니까 static import 겠거니.. 하고 짐작을 하셨겠죠?
import static org.hamcrest.CoreMatchers.*;
이렇게 추가해주시면 됩니다.
문장이 읽기 좋다는 장점 외에도 다음과 같은 장점들이 있습니다.
- 콤비네이션 가능. is(not(3)) 이나 eather(2).or(3) 같은 조합을 이뤄서 사용할 수 있음.
- assertEquals() 보다 더 가독성 높은 에러 메시지.
- 커스텀 매처 사용하능.
JUnit 4.4 가 제공하는 매처들
- org.hamcrest.CoreMatchers
- org.junit.matchers.JUnitMatchers.
'모하니? > Coding' 카테고리의 다른 글
바코드를 출력 및 읽기 코딩할 때 주의할 것 (0) | 2008.07.23 |
---|---|
서비스 계층 다이어트 시키기 (0) | 2008.07.15 |
상태 기반 테스트란? (0) | 2008.07.08 |
expect -> run -> verify 스타일(ex. Easymock) 바이바이 (0) | 2008.07.08 |
JUnit 4.4에 추가된 Assumetion (0) | 2008.07.08 |
JUnit 4.4에 추가된 assertThat() (0) | 2008.07.08 |
엑셀 시트 복사하기(with POI) + 리팩터링 (0) | 2008.07.01 |
서버에 위치한 파일 다운로드 링크 달기 (0) | 2008.06.26 |
톰캣 인코딩 설정해야 하는 경우 (2) | 2008.06.26 |
배치관리 및 실행 구현시 고려할 것. (0) | 2008.06.05 |
스프링을 사용한 트랜잭션 관리 방법 (2) | 2008.06.04 |