Scr*_*ers 3 java testing servlets jetty
我正在使用Jetty提供的ServletTester类来测试我的一个servlet.
servlet使用InputStream.read()读取请求的主体,以构造一个byte [],它由servlet解码并执行.
ServletTest类提供了getResponses(ByteArrayBuffer)方法,但我不确定如何以正确的格式创建其中一个,因为它还需要包含诸如头之类的东西(例如"Content-Type:application/octet-stream").
任何人都可以向我展示一种简单的方法来构建它,最好使用现有的库,以便我可以以类似于HttpTester类的方式使用它.
如果有一种"更好"的方法来测试servlet(理想情况下使用本地连接器而不是通过tcp堆栈),我也想听一听.
非常感谢,
为什么要使用模拟?为什么不通过在jetty中运行它来测试servlet?
Servlet servlet = new MyServlet();
String mapping = "/foo";
Server server = new Server(0);
Context servletContext = new Context(server, contextPath, Context.SESSIONS);
servletContext.addServlet(new ServletHolder(servlet), mapping);
server.start();
URL url = new URL("http", "localhost", server.getConnectors()[0].getLocalPort(), "/foo?bar");
//get the url...assert what you want
//finally server.stop();
Run Code Online (Sandbox Code Playgroud)
编辑:只是想让人们放心,这是非常快的.它也是一个非常可靠的指标,表明你的代码实际上会做什么,因为它实际上是在做它.