Перемешанный метод все еще вызывает реальный метод
Я смоделировал запрос и ответ с помощью easymock, но он все еще проходит через каждую строку в методе запроса и получает исключение.
Например:
public class helper{
public String getCB(){
Response response = serviceImpl.getDefaultMethod(request);
return response.getString();
}
Тестовое задание:
expect(MockServiceImpl.getDefaultMethod(mockRequest)).andReturn(mockResponse);
Получая исключение, это происходит внутри getDefaultMethod()
,
Я не понимаю, почему проходит код в этом методе. Кто-нибудь может мне помочь, пожалуйста!
2 ответа
AFAIK easymock не умеет имитировать вызовы статических методов.
Вы должны переместить линию
Response response = ServiceImpl.getDefaultMethod(request);
из метода и издеваться request
,
Другой подход заключался в использовании PowerMock, но, по-моему, это отказ от плохого дизайна.
Если метод не является статичным и не окончательным, он должен работать.
Если это не так, это означает, что вы вызываете этот метод не в фиктивном, а в реальном экземпляре класса. Показ нам создания и инъекций поможет нам это подтвердить.