Michael HönnigMichael Hönnig
In Unit-Tests werden immer wieder sogenannte Mock-Objekte benötigt, um zum vereinfachte Versionen der Objekte zu haben, mit dem der Test-Kandidat kommuniziert. Diese müssen aber zum einen sinnvoll auf Methoden-Aufrufe reagieren, so dass der Test-Kandidat überhaupt funktionieren kann. Und zum anderen muss teilweise geprüft werden, ob der Test-Kandidat an diesen Objekten bestimmte Methoden mit bestimmten Parametern gerufen hat. Mit Mockito sieht ein solcher Unit-Test z.B. wie folgt aus:
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import static org.mockito.Mockito.when;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Matchers.anyInt;

class TestCase {

	// "Model" könnte ein Interface sein, 
	// für das ein Mock-Objekt benötigt wird
	@Mock
	Model model; 

        @Before
	public void before() {
		// bezieht sich auf obige(s) @Mock
		MockitoAnnotations.initMocks(this); 

        @Test
        public void test() {
                // wenn model.getPeriod() gerufen wird, 
		// soll der Mock 15 zurück liefern
		when(model.getPeriod()).thenReturn(15);

                // wenn model.getDelay() mit irgend einem 
		// int-Paramter gerufen wird,
                // soll der Mock 1 zurück liefern
		when(model.getDelay(anyInt)).thenReturn(1);

                // wenn model.run(1) gerufen wird, 
		// soll der Mock 20 zurück liefern
		when(model.run(1)).thenReturn(20);

                // der eigentliche Test
                new TestKandidat(model).run(22);

                // sollte mindestens einmal 
		// mit irgendeinem Parameterwert 
		// aufgerufen worden sein
		verify(model, atLeast(1)).setPeriod(anyInt());

                // model.run(1) sollte genau einmal aufgerufen worden sein
		verify(model, times(1)).run(1);

                // mode.fail() sollte gar nicht aufgerufen worden sein
		verify(model, never()).fail();
}
Ein Vergleich von EasyMock mit Mockito findet sich hier und eine ausführlichere Dokumentation zu Mockito findet sich hier. Mockito kann außerdem auch über Maven bezogen werden (ggf. auf neue Versionen achten):
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.8.0</version>
    </dependency>