Javaservlet测试
我正在使用Jetty提供的ServletTester类来测试我的一个servlet
servlet使用InputStream读取请求主体的数据。read()构造一个字节[],该字节是servlet解码并执行操作的字节
ServletTest类提供了一个getResponses(ByteArrayBuffer)方法,但我不确定如何以正确的格式创建其中一个,因为它还需要包含头之类的内容(例如“内容类型:应用程序/八位字节流”)
有谁能告诉我一个简单的方法来构造这个,最好是使用现有的库,这样我就可以以类似于HttpTester类的方式使用它了
如果有一种“更好”的方法来测试servlet(理想情况下使用本地连接器而不是通过tcp堆栈),我也想听听这个
非常感谢
# 1 楼答案
您可以使用HttpClient来简化测试。请看以下文章:
http://roberthanson.blogspot.com/2007/12/testing-servlets-with-junit.html
结合servlet tester,您应该可以在单元测试方面获得所需的功能
# 2 楼答案
为什么要使用模拟呢?为什么不在jetty中运行servlet来测试它呢
编辑:只是想让人们放心,这是非常快的。它也是一个非常可靠的指标,表明你的代码实际上会做什么,因为它实际上正在做
# 3 楼答案
Spring MVC为各种
javax.servlet
接口提供a small set of "mock" classes,例如HttpServletRequest
、HttpSession
等等。这样就很容易对servlet之类的对象进行单元测试,只需将mock注入到例如doGet()
方法中即使在服务器上不使用Spring本身,也可以使用库中的模拟,只是为了测试