본문 바로가기
JAVA/SpringTest

TDD에 대해서 다시 정리 해본다. - hamcrest

by 플람 2020. 3. 13.

이제 hamcrest에 대해서 알아보려고 한다.

 

hamcrest란? jMock이라는 Mock라이브러리 저자들이 참여해 만든 Matcher라이브러리이며 테스트 표현식을 작성할 때 좀 더 문맥적으로 자연스럽고 우아한 문장으로 만드는 것을 도와준다.

 

여기서.. 우아한 문장이라니... 나는 프로그래밍 언어가.. 우아하다는 것을 아직 모르겠다..

 

머.. 어찌어찌 이렇고 저렇고 생활언어에 가까운 테스트 케이스가 만들어진다고 한다..

 

즉 junit에는 assetEquals가 있다 그러면 hamcrest는 무엇으로 변경했을까? 바로 assertThat이다.

 

사용법은? assertThat(테스트대상, Matcher 구문); , assertThat("메시지", 테스트대상, Matcher구문);

 

assertEquals(100, account.getBalance()); -> assertThat(account.getBlance(). is(equalTo(10000)));

 

그리고 실행 결과가 바뀐다.

 

바로.. Java.lang.AssertionError : Expected(예상) : is "2020/03/13" got : "2020/03/12" 로 좀 더 흐름을 볼 수 있다.

 

책에서는 "예상은 '무엇'인데, 실제로는 '무엇'이 나왔음!"의 형태라고 한다.

 

그리고 많은 비교를 할 수 있다.ex) core, beans, collection, number, object, text, xml

 

이상이다. 

 

https://repo.yona.io/doortts/blog/issue/3

 

2장 - JUnit and Hamcrest

이전: [1장 - 테스트주도개발 Test Driven Development](https://repo.yona.io/doortts/blog/issue/2) 다음: [3장 - TDD 좀 더 잘하기](https://repo.yona.io/doortts/blog/issue/4) ### 2장 본문 [02-JUnit-and-Hamcrest.pdf](/file - doortts/blog

repo.yona.io

현 글은 이 글을 읽고나서 정리한 것이다.