JDave is a behavior-driven development framework that provides an easy way to specify the behavior of your Java classes.
Containment support for java.util.Map. Mocking support for final classes/methods (see also unfinalizing in jdave). Mocking support to create dummies. Wicket components can be selected using selectFirst(...).which(...).from(...) (or selectAll). JMock 2.4, Hamcrest 1.1, and JUnit 4.4. 'must' can be used instead of 'should' or 'does'. A Wicket Selenium module for Wicket development. Scala as less verbose syntax (see StackSpec.scala). Better IDE support for string comparisons.