2015-04-15 9 views

Trả lời

4

Bạn có thể sử dụng 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); 

Tuy nhiên, nếu bạn có khả năng tái cấu trúc mã thử nghiệm, tốt hơn là để khách hàng trả về OutputStream hoặc một số dữ liệu có thể được đưa vào luồng đầu ra này. Đây sẽ là thiết kế tốt hơn nhiều.

1

thử này

 doAnswer(new Answer() { 
      @Override 
      public Object answer(InvocationOnMock invocation) { 
       ByteArrayOutputStream baos = (ByteArrayOutputStream) invocation.getArguments()[0]; 
       // fill it here 
       return null; 
      }}).when(client).retrieveFile(baos); 
Các vấn đề liên quan