Servlet单元的测试
-
24-09-2019 - |
题
目前我使用TestNG框架进行测试的应用程序的业务逻辑,我增加了一些Servlet类。
我怎么单元的测试这些Servlet类TestNg框架?
其他提示
其中一种最简单的方法之一是 ServletTester 从码头。一切都被嵌入码头内自动完成的,所以没有在测试过程中打开的端口!如果使用Maven比以下伪影是为了使此方法:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-servlet-tester</artifactId>
<version>6.1.16</version>
<scope>test</scope>
</dependency>
示例:
准备ServletTester
ServletTester tester=new ServletTester();
tester.addServlet(HelloServlet.class, "/hello");
tester.start();
创建HTTP请求
HttpTester request = new HttpTester();
request.setMethod("GET");
request.setHeader("Host","tester");
request.setURI("/hello");
request.setVersion("HTTP/1.0");
呼叫servlet和检索响应:
HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));
断言要检查响应,它的内容是什么:
assertEquals(200,response.getStatus());
assertEquals("Hello Servlet",response.getContent());
我建议你把所有的业务逻辑的出的的的servlet类的,到自己的类,你可以测试一下。这树叶的servlet,就像你的业务逻辑和容器之间的胶水,什么也没有在他们的价值的测试。
在API类如HttpServletRequest
,ServletConfig
等,是使用你所选择的嘲讽框架(JMock的,的Mockito等)的主要目标,因为他们的所有接口。
不隶属于 StackOverflow