All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jmock.integration.junit4.package.html Maven / Gradle / Ivy

There is a newer version: 2.13.1
Show newest version


Integrates jMock with JUnit 4.

To write a mock object test in JUnit 4, declare a field of type Mockery that holds a JUnit4Mockery and annotate your test class with @RunWith(JMock.class), as shown below. The Mockery will be verified after the test has run and before the fixture is torn down.

import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Test;
import org.junit.runner.RunWith;

...

@RunWith(JMock.class)
public class ExampleJUnit4MockObjectTest {
	Mockery context = new JUnit4Mockery();
	
	...	
	
	@Test public void
	dispatchesEventToSessionsOtherThanThenSender() {
		...
		
		context.checking(new Expectations() {{
			...
		}});
		
		...
	}
}

Alternatively, from JUnit 4.7, you can use JMockContext which implements a JUnit Rule to manage expectations and allowances, and to assert the expectations after each test has run.

public class ATestWithSatisfiedExpectations {
  @Rule public final JMockContext context = new JMockContext();
  private final Runnable runnable = context.mock(Runnable.class);
     
  @Test
  public void doesSatisfyExpectations() {
    context.checking(new Expectations() {{
      oneOf (runnable).run();
    }});
          
    runnable.run();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy