웹에만 매쉬업이 있는게 아니다. JUnit에도 있다. 아참, 앞으로 있을 것이다.

켄트 벡과 함께 JUnit4 개발을 책임지고 있는 David Saff라는 사람이 있다. David Saff는 MIT에서 JUnit Max의 기본 아이디어인 Continuous Testing을 연구했던 사람이다. 아마 성훈(http://sestory.tistory.com/)이가 있던 그 연구소 같은데.. 아님 말고. 작년엔가 구글에 입사해서 테스팅 엔지니어로 활동하고 있다.

아무튼 David Saff는 JUnit 메일링 리스트에서 여러번 테스트에서 사용하는 assert 방법에 대한 자신의 아이디어와 연구중인 내용을 소개한 적이 있다. JUnit은 Hamcrest의 assertThat과 Matcher 등을 차용해서 기존의 assertEquals()와 같은 assert문을 대체한 바 있다. 하지만 assertThat과 Matcher방식이 처음에는 읽기가 편한 것 같고 확장성도 좋아보이지만, 나름 단점도 많이 있다.

David Saff는 그래서 Mock프레임워크 등에서 애용되는 스타일인 dot(.)으로 연결되는 문장으로 assert을 기술하는 방법을 연구해왔다. 얼핏 그 내용을 JUnit 메일링 리스트에 공개한게 작년 봄인가 여름인가 그랬던 것 같은데, 오늘 보니 dotmesh(http://github.com/dsaff/dotmesh)라는 이름으로 공개를 했다. 자세한 내용은 그의 블로그(http://saffgreenbar.blogspot.com/2010/03/dotmesh-free-assertions-from-domain.html)의 글을 읽어보면 알 수 있을 것이다.

예를 들면 다음과 같은 문장을

assertThat(responseMessage, containsString(”OK”));

닷메쉬에서는 아래와 같이 만들 수 있다.

assertThat(responseMessage).contains(”OK”);

그 외에도 예를 보면

assertThat(Arrays.asList("a", "b", "c")).contains("a"); // passes

assertThat("abc").matches(".*a.*"); // passes

assertThat(not(Arrays.asList("a", "b", "c"))).isEmpty(); // passes

assertThat("abc").contains("c"); // passes

assertThat(Arrays.asList("a")).isEmpty(); // error: “Failed: <[a]>.isEmpty()”

assertThat("abcde").startsWith("ghi", 1); // error: "Failed: <abcde>.startsWith(<ghi>,<1>)"

assertThat(1).notEquals(2);

assertThat(not(1)).equals(2);

 

이런 식이다.

장단점과 특징에 대해서는 블로그 글에 잘 설명되어있다. 아직 더 발전시킬 내용이 많겠지만, 아무튼 기대된다. 언젠가는 JUnit에 들어가겠지.

당장은 짬을 내기 힘들어서 써보지는 못하겠지만, 다음 개발작업에 들어가면 꼭 쓰고 말테다. 누가 좀 적용해보고 감상 좀…

그런데 왜 이름이 닷메쉬(dotmesh)일까? 메쉬업이 인터넷의 다양한 서비스를 엮어서 새로운 서비스를 만들어내는 작업이듯(맞나?), 닷메쉬는 메소드 호출에 사용하는 dot(.)기호로 메소드를 엮어주기 때문이다. 지금은 assertThat() 뒤에 하나 씩이지만, 아마 굴비엮듯이 계속 이어져 만들어질 수도 있겠지. 그런데 이름을 hamcrest처럼 assertThat으로 써서 좀 맘에 안든다. 그냥 assert(…).equals(..) 이런 식이면 안되나?

사용후기는 다음 기회에.

UPDATE: 아차! 매쉬업은 MashUp이었지! 발음이 비슷하다고 이런 착각을… :(

역시 블로그는 졸릴 때 쓰면 안돼. 그냥 낚시용 제목으로 남겨놔야지.

Related posts:

  1. JUnit 4.7 분석 (1) JUnit 4.7 코드 첫인상
  2. JUnit 4.7 분석 (0) 시작
  3. JUnit Max – Kent Beck
  4. Spring 3.0 (50) JUnit 4.5~4.7 겨우 지원성공 그리고 계속되는 악몽
  5. Spring 3.0 (49) JUnit 4.7로 변경과 상속의 폐해
  6. JUnitMax Core가 포함된 JUnit 4.6 릴리스
  7. JUnit 4.7과 OCP
  8. 유쾌한 이슈처리 재촉 메일
  9. 테스트 코드에서 static import를 편하게 넣는 방법
  10. 이클립스에서 JUnit4 테스트의 특정 테스트메소드만 실행하기
  11. Spring 3.0 (51) @Rule 지원성공 그리고 Formatter, ConversionService의 전면 등장

Facebook comments:

to “JUnit assert 매쉬업”

  1. I’m sorry, I’m not interested video xnxx In Fry’s case, his compensation came mostly in the form ofstock awards, valued last year at $10.1 million, according toTwitter’s IPO documents registered with securities regulators.He drew a salary of $145,513 and a bonus of $100,000.

  2. I’m originally from Dublin but now live in Edinburgh xnxx porn Civil rights groups the National Urban League and King’s Southern Christian Leadership Conference (SCLC) will also be holding events in Washington. The SCLC’s international convention on Friday will feature debates on race and poverty and on voting rights.

  3. That was clever. I all be stopping back.

  4. I’m doing a phd in chemistry xnxx tube
    The families of six elite firefighters who died while battling on the front lines of the ferocious wildland blaze are the only ones who will receive the benefit packages, according to the news station.

  5. How much does the job pay? xvedio Justin Timberlake’s years spent singing and dancing with ‘N Sync wouldn’t seem to indicate that he could make the leap to acting — nor would his appearance in such films as the infamous 2005 bomb, “The Love Guru.”  

  6. The United States xnxx Kennedy, an attorney and bestselling book editor, is being rewarded for helping put Obama in the White House, where her father served until his assassination 50 years ago. If confirmed, she would be the first woman in a post where many other prominent Americans have served to strengthen a vital Asian tie.

  7. Another year xvideos in
    He could have signed Matt Hasselbeck — who would have been an ideal mentor for Smith — Ryan Fitzpatrick, Matt Cassel, Tarvaris Jackson or Brady Quinn this offseason. He could have given up a 2014 fifth-round pick and 2015 conditional pick for Matt Flynn like the Raiders did.

  8. superb post.Ne aer knew this, appreciate it for letting me know.

  9. What do you study? x vedios
    “It’s always fun. It’s always (been) a dream of mine since I was a kid to be in those situations,” said Smith, who also led the Jets on a game-winning march against the Bucs, but in that one was aided by a dumb Tampa Bay penalty. This time he needed no help.

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha