Java单元测试模拟HttpServletRequest getResourceAsStream

Java单元测试模拟HttpServletRequest getResourceAsStream,java,unit-testing,servlets,junit,mockito,Java,Unit Testing,Servlets,Junit,Mockito,如何在Java单元测试中模拟HttpServletRequestgetResourceAsStream?我使用它从servlet请求中读取资源文件 HttpServletRequest.getSession().getServletContext().getResourceAsStream() 我正在使用org.mockito.Mock来模拟HttpServletRequest您需要做很多模拟。我建议使用注释: import static org.mockito.Mockito.when; p

如何在Java单元测试中模拟HttpServletRequest
getResourceAsStream
?我使用它从servlet请求中读取资源文件

HttpServletRequest.getSession().getServletContext().getResourceAsStream()


我正在使用
org.mockito.Mock
来模拟
HttpServletRequest

您需要做很多模拟。我建议使用注释:

import static org.mockito.Mockito.when;

public class TestClass{

   @Mock
   private HttpServletRequest httpServletRequestMock;

   @Mock
   private HttpSession httpsSessionMock;

   @Mock
   private ServletContext servletContextMock;

   @Before
   public void init(){
      MockitoAnnotations.initMocks(this);
   }

   @Test
   public void test(){
       // Arrange
       when(httpServletRequestMock.getSession()).thenReturn(httpSessionMock);
       when(httpSessionMock.getServletContext()).thenReturn(servletContextMock);

       InputStream inputStream = // instantiate;

       when(servletContextMock.getResourceAsStream()).thenReturn(inputStream);

       // Act - invoke method under test with mocked HttpServletRequest

   }
}