Related Projects

Brice Dutheil edited this page Aug 31, 2016 · 5 revisions

JUnit 5 mockito extension

This is an extension written by the JUnit team that allows to create and inject mocks in the test (and set up / tear down) methods.

@ExtendWith(MockitoExtension.class)
class MockitoExtensionInBaseClassTest {

	@Mock
	private NumberGenerator numberGenerator;

	@BeforeEach
	void initialize(@Mock MyType myType, TestInfo testInfo) {
		when(myType.getName()).thenReturn(testInfo.getDisplayName());
		when(numberGenerator.next()).thenReturn(42);
	}

	@Test
	void firstTestWithInjectedMock(@Mock MyType myType) {
		assertEquals("firstTestWithInjectedMock(MyType)", myType.getName());
		assertEquals(42, numberGenerator.next());
	}
}

The project is located here

Springockito

A Spring framework extension that simplifies creation of the mocks in the spring xml context files, ex:

<mockito:mock class="java.util.Date" id="mockedDate" />
<mockito:spy id="beanToBeSpied" />

The project homepage

Springockito-annotations

An Spring framework extension that pushes former approach even further - all the configuration is annotations based - no need to create special mock overriding contexts. More info here

Mockito-collections

Project to investigate the possibility of injecting objects into Collections using generics to determine which objects and mock especially can be placed into the Collections.

@InjectMocks private MyDelegate delegate;
@Mock private MyListener listener1;
@Mock private MyListener listener2;

@Before public void setup() { MockitoCollectionAnnotations.inject(this);}

See here to read more about it.

Spock Subjects-Collaborators Extension

Spock subject-collaborators extension is a port of the Mockito's @InjectMocks functionality for Spock.

It allows you to annotate your objects (most preferably system under test) with @Subject annotation (In Mockito it would be @InjectMocks). Any object that you would like to have injected to your @Subject annotated object you have to annotate with @Collaborator. The main difference between the approaches is such that here in Spock you have to create mocks manually and in Mockito @Mock annotation does that for you.

See here to read more about it.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.