Piotr Gabryanczyk’s Blog

Java, Refactoring, AOP, Spring, DDD, TDD, etc.

  • Blogroll

    • I have joined Anti-IF Campaign

Literate testing – extending JMock

Posted by Piotr Gabryanczyk on December 6, 2006

I have come across the following post today: http://weblogs.java.net/blog/tomwhite/archive/2006/05/literate_progra_1.html

I think it is a great idea to use natural language to simplify unit testing. I even wrote couple of similar extensions to JMock lately. I will share them soon :)

JMock vs EasyMock

Many developers choose EasyMock over JMock. The main argument is “JMock tests are not easy to refactor because method names are passed as a string”. I am not going to comment on that as many people already proved that good IDE can handle it easily.

What people do seem to forget is:

  • JMock uses literate API,
  • JMock tests are much more consistent comparing to EasyMock (you can clearly see what the expectations are)
  • In JMock you can easily differentiate between expectations and stubs
  • In JMock you can easily show which parameters are insignificant using ANY-like
  • EasyMock produces very ugly code when expected methods declare exceptions
  • EasyMock produces ugly code when expected method doesn’t return the value

Probably there is more…

Let me know what you think!

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>