如何模仿HTTPServletRequest
和HTTPServletResponse
对象。原因是我想测试某些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可能更容易,但这不是必需的。我会考虑覆盖getParameter和getParameterMap