title: Unitils vs Spring TestContext Framework
body: <p>I'm thinking about which testing framework to use for my spring+hibernate web application.
  Initially I spotted and got pretty interested in Unitils, but then I saw the standard Spring TestContext Framework and started having some doubts. I'm pretty new to the subject, but so far my understanding is the following:</p>
  
  <p>Unitils pros:</p>
  
  <ul>
  <li>has a mix of various other testing frameworks i.e. EasyMock or DbUnit</li>
  <li>builds on top of the the frameworks, providing some additional value i.e. hibernate mapping tests or reflection testing utilities</li>
  </ul>
  
  <p>Spring TestContext Framework pros:</p>
  
  <ul>
  <li>allows to use the standard Spring annotations when testing</li>
  <li>probably has a bigger user base and better support (this is my assumption, since Unitils seems to be basically created by two people)</li>
  <li>also has some of the Unitils features built-in (such as reflection testing utilities)</li>
  <li>if I need any of the Unitils 'bigger' features such as DbUnit or EasyMock I can just get regular DbUnit or EasyMock straight from the source - this allows me to always have the most current version of DbUnit/EasyMock without waiting for Unitils to release their new version with the current DbUnit/EasyMock</li>
  </ul>
  
  <p>So for now I'm leaning more towards using Spring TestContext Framework.
  Does anyone have a bit more experience with these frameworks and could help me tilt in the right direction? What does Unitils actually offer on its own, except for integration of all these frameworks?</p>
  
  <p>[EDIT] Just found out about a few more things provided by Unitils:</p>
  
  <ul>
  <li>some improvements to DbUnit like the @DataSet annotation (in Spring TestContext Framework it appears you have to write a bit more code on your own if you want to use it with DbUnit as described here: <a href="http://blog.zenika.com/index.php?post/2010/02/04/Testing-SQL-queries-with-Spring-and-DbUnit%2C-part-1" rel="nofollow">http://blog.zenika.com/index.php?post/2010/02/04/Testing-SQL-queries-with-Spring-and-DbUnit%2C-part-1</a>)</li>
  <li>ability to disable database constraints in your tests</li>
  </ul>
  
  <p>Here's a nice presentation on Unitils which convinced me to start using Unitils:
  <a href="http://www.javapolis.com/confluence/download/attachments/32918/C_14_09_04.pdf" rel="nofollow">http://www.javapolis.com/confluence/download/attachments/32918/C_14_09_04.pdf</a></p>
  
  <p>I'm leaving the question open for the time being, maybe someone will come up with some other thoughts...</p>