A
JUnitRuleMockery
is a JUnit Rule that manages JMock expectations and allowances, and asserts that expectations have been met after each test has finished. To use it, add a field to the test class (note that you don't have to specify
@RunWith(JMock.class)
any more). For example,
public class ATestWithSatisfiedExpectations { @Rule public final JUnitRuleMockery context = new JUnitRuleMockery(); private final Runnable runnable = context.mock(Runnable.class); @Test public void doesSatisfyExpectations() { context.checking(new Expectations() { { oneOf(runnable).run(); } }); runnable.run(); } }
Note that the Rule field must be declared public and as a
JUnitRuleMockery
(not a
Mockery
) for JUnit to recognise it, as it's checked statically.
@author smgf