2015-04-15 21 views

Odpowiedz

4

Możesz użyć Mockitos Answer.

doAnswer(new Answer() { 
    @Override 
    public Object answer(InvocationOnMock invocation) { 
     Object[] args = invocation.getArguments(); 
     ByteArrayOutputStream baos = (ByteArrayOutputStream)args[0]; 
     //fill baos with data 
     return null; 
    } 
}).when(client).retrieveFile(baos); 

Jednakże, jeśli masz możliwość byłaby testowanego kodu, lepiej jest, aby klient zwróci OutputStream lub niektóre dane, które mogą zostać wprowadzone do tego strumienia wyjściowego. To byłby znacznie lepszy projekt.

1

spróbować

 doAnswer(new Answer() { 
      @Override 
      public Object answer(InvocationOnMock invocation) { 
       ByteArrayOutputStream baos = (ByteArrayOutputStream) invocation.getArguments()[0]; 
       // fill it here 
       return null; 
      }}).when(client).retrieveFile(baos);