Я видел несколько примеров перехода людей с Mockito на JMockit, но я делаю наоборот. Я не совсем уверен, что делать с параметрами @Mocked. Они просто становятся переменными экземпляра @Mock? Я думаю, что предложение NonStrictExpectations должно стать предложением «когда», например:
when(rpManager.login()).thenReturn(true);
и раздел «Проверки» становится «проверкой».
Это пример полного тестового примера, который я конвертирую.
@Test
public void testGetOffersUnsuccessfulResponse(@Mocked final RPRequest mockRequest, @Mocked final RPResponse mockResponse) {
final String sessionId = "123";
new NonStrictExpectations() {{
rpManager.login(); returns(true);
rpManager.newRequest(anyString); returns(mockRequest);
mockRequest.sendRequest(); returns(mockResponse);
mockResponse.isSuccess(); returns(false);
}};
final EpiphanyConnection connection = new EpiphanyConnection(getDummyConnectionProperties(), getDummyActionMapping());
assertTrue(connection.connect());
final InteractionContext interactionContext = new InteractionContext();
interactionContext.setRequestContext(new RequestContext());
interactionContext.getRequestContext().setAction(getDummyActionMapping().keySet().iterator().next());
interactionContext.setUserContext(new UserContext());
interactionContext.getUserContext().setSessionId(sessionId);
final OfferTranslator offerTranslator = connection.fetchCommunications(interactionContext);
assertNotNull(offerTranslator);
new Verifications() {{
// failure in the below likely indicates mismatched JSON string.
mockRequest.setData("SessionId", sessionId);
mockRequest.sendRequest(); times=1;
}};
}