Mockito

Mock Library for Java.library

Auto inject Mocks

Automatically inject @Mock’s into a field with the @InjectMocks Annotation.

@Test public class SomeTest {
  @Mock private Object myMock1;
  @Mock private Object myMock2;
  @AutoInject private Object target;
}

@Mocks are initialized null

Missing Context. Explicitly initialize through MockitoAnnotations class.

import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import at.example.dto.SimpleRegisteredService;
 
@Test public class SimpleRegisteredServicesEndpointTest {
 
    @Mock private Object myMock;
    private Object target;
    private AutoCloseable mocks;
 
    @BeforeMethod public void setup() {
        mocks = MockitoAnnotations.openMocks(this);
        this.target = new Object(myMock);
    }
 
    @AfterMethod public void cleanup() throws Exception {
        mocks.close();
    }
}

Test order of methods called

  @Test
  void testHandleServiceRequestWorkflowSuccess() {
      // WHEN
      ServiceRequest processedServiceRequest = service.handleServiceRequestProcessing(processableServiceRequest);
      // THEN
      assertEquals(PROCESSING_SUCCESS, processedServiceRequest.getStatus());
      verify(messageBuilder, never()).buildProcessingFailedMessage(any());
      verify(messageBuilder).buildProcessingSuccessfulMessage();
      InOrder inOrder = inOrder(client);
      inOrder.verify(client).postComment(any(), any());
      inOrder.verify(client).markServiceRequestIssueAsProcessed(processableServiceRequest.getId());
  }