Насмешливый объект класса, имеющий методы setter getter, присутствующие в функции, с использованием mockito

У меня есть требование, в котором мне нужно получить ответ от веб-сервиса. Нужно имитировать функцию getPdf. Я не могу издеваться над GetDocumentRequest и GetDocumentResponse. Mockito или PowerMockito мне нужно использовать для насмешек. Например:

Class xyz {
    // mocking required.
    String getPdf (int I, String h){
        return  getDoc(I, h):
     }

    String getDoc (int I, String h){
        GetDocumentRequest d = factory.getDocument ():
        d.setversion (I);
        d.setname (h):
        GetDocumentResponse r  = getService ().getPdfDoc (d):
        // webservice
        return r.getPdfString ();
   }


}

person user1575601    schedule 21.04.2016    source источник
comment
Не совсем понятно, что вы спрашиваете. Если вам нужно издеваться над getPdfDoc(); ну, тогда, очевидно, вам нужно фактически издеваться над объектом, который вернет ваш вызов getService(). И ваш код не говорит нам, что на самом деле делает getService(). Дополнительное примечание: избегайте всех фиктивных фреймворков, которые несут силу в своем имени. Они приносят больше неприятностей, чем пользы.   -  person GhostCat    schedule 21.04.2016
comment
используй спок. Это будет менее навязчивым для вашего кода и сделает ваши тесты чище.   -  person user152468    schedule 21.04.2016
comment
Мне нужно имитировать getPdf(), который в свою очередь вызывает getDoc(). Я не могу издеваться над объектами getdocumentRequest и GetDocumentResponse   -  person user1575601    schedule 21.04.2016


Ответы (1)


Mockito должно быть достаточно для издевательства над обычным методом. Может что-то похожее на это?

@Test
public void test() {
   Xyz xyz = mock(Xyz.class);
   when(xyz.getPdf(any(Integer.class), any(String.class)).thenReturn("this is my pdf");
}
person user152468    schedule 21.04.2016
comment
Но GetDocumentRequest и GetDocumentResponse не высмеиваются в этом, поэтому возвращается ноль - person user1575601; 21.04.2016
comment
Ok. Тогда я не совсем понимаю вопрос, который должен признать. - person user152468; 21.04.2016