如何模仿HTTPServletRequestHTTPServletResponse对象。原因是我想测试某些servlet的行为。

我知道JUnit可能提供了此功能,但是我不知道如何使用它(我将很快学习),并且需要相当快地做到这一点。

HTTPServletRequest和HTTPServletResponse都是接口,因此无法实例化。有一个实现HttpServletRequest的HttpServletRequestWrapper,但它似乎没有任何setParameter()类型的方法,并且HttpServletResponse似乎根本没有任何实现类。

如何通过传递合适的HttpServletRequest对象然后检查接收到的HttpServletResponse对象是否符合我的期望来测试代码?

最佳答案

它是一个接口的事实使它更易于模仿:它在嘲讽最终类很棘手。

class MyHttpServletRequest implements HttpServletRequest
{
  //whatever
}

class MyHttpServletResponse implements HttpServletResponse
{
  //whatever
}


doGet(new MyHttpServletRequest(),
      new MyHttpServletResponse())


子类化HttpServletRequestWrapper可能更容易,但这不是必需的。我会考虑覆盖getParametergetParameterMap

10-08 16:12