Currently I m using TestNG framework for testing application business logic, i added some Servlet classes recently.
How do I unit test these Servlet classes in TestNg framework?
Currently I m using TestNG framework for testing application business logic, i added some Servlet classes recently.
How do I unit test these Servlet classes in TestNg framework?
One of the easiest ways is ServletTester from Jetty. Everything is done within embedded Jetty automatically, so there is no port opened during the testing! If you use Maven than the following artifact is required to enable this method:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-servlet-tester</artifactId>
<version>6.1.16</version>
<scope>test</scope>
</dependency>
Example:
Prepare ServletTester
ServletTester tester=new ServletTester();
tester.addServlet(HelloServlet.class, "/hello");
tester.start();
Create HTTP request
HttpTester request = new HttpTester();
request.setMethod("GET");
request.setHeader("Host","tester");
request.setURI("/hello");
request.setVersion("HTTP/1.0");
Call servlet and retrieve response:
HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));
Assert what you want to check on response and it s content:
assertEquals(200,response.getStatus());
assertEquals("Hello Servlet",response.getContent());
I suggest that you move all of the business logic out of the servlet classes, into your own classes which you can test. That leaves the servlets just as glue between your business logic and the container, with nothing in them worth testing.
The API classes such as HttpServletRequest
, ServletConfig
, etc, are prime targets for using a mocking framework of your choice (JMock, Mockito, etc), since they re all interfaces.
Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...
Check this, List<String> list = new ArrayList<String>(); for (int i = 0; i < 10000; i++) { String value = (""+UUID.randomUUID().getLeastSignificantBits()).substring(3, ...
I am in the middle of solving a problem where I think it s best suited for a decorator and a state pattern. The high level setting is something like a sandwich maker and dispenser, where I have a set ...
I have been trying to execute a MS SQL Server stored procedure via JDBC today and have been unsuccessful thus far. The stored procedure has 1 input and 1 output parameter. With every combination I ...
I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...
If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...
I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....
I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...