0

I am currently trying to test what is printed to a servlet output stream using power mockito but I can't find any way to do it.

Here is what I have so far

Routing routingMock = PowerMockito.mock( Routing.class );
HttpServletRequest httpRequestMock = PowerMockito.mock( HttpServletRequest.class );        

HttpServletResponse httpServletResponseMock = PowerMockito.mock( HttpServletResponse.class );
PowerMockito.when( httpRequestMock.getPathInfo() ).thenReturn( "/Users" );         
ServletOutputStream outputStreamMock = PowerMockito.mock( ServletOutputStream.class );

PowerMockito.when( httpServletResponseMock.getOutputStream() ).thenReturn( outputStream );
routingMock.doGet( httpRequestMock, httpServletResponseMock );

Can anyone help me figure out how to access the data that was written to outputStreamMock?

Thanks

FMC
  • 650
  • 12
  • 31

1 Answers1

0

As far as i know and my experience with power mockito. You have to fill in data yourself in output stream and then return it.

Like in below statement, for output stream; fill in the data i.e. write your needed data to stream and then return.

PowerMockito.when( httpServletResponseMock.getOutputStream() ).thenReturn( outputStream );

Aamir
  • 655
  • 1
  • 8
  • 27