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());
}