Я видел несколько примеров перехода людей из Мокито в JMockit, но я делаю наоборот. Я не уверен, что делать с параметрами @Mocked. Они просто становятся переменными экземпляра @Mock? Я думаю, что пункт NonStrictExpectations должен стать «когда» пункты, как:Преобразование из рамки JMockit в Mockito
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;
}};
}
Я понимаю это часть. Я не уверен, что делать с параметрами, разрешенными JMockit, а также конкретными аннотациями JMockit, такими как @Cascading –
поведение '@ Cascading' может быть выполнено с помощью соответствующего ответного ответа по умолчанию для аннотации' @ Mock' (или 'Mockito.mock 'call). Мне кажется, что для '@ Cascading' лучшим лучшим эквивалентом Mockito будет' Mockito.RETURNS_MOCKS'. См. Документ mockito, в котором есть интересные материалы: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#RETURNS_MOCKS –
В моей ситуации я обнаружил, что '@Mock (answer = Answers.RETURNS_DEEP_STUBS) 'было то, что мне нужно было сделать для' @ Cascading' –