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.