Junit 测试 servlet--easymock

对于要在项目里对servlet进行单元测试,可以使用junit进行,而用junit测试servlet时有两种方法,一种使用httpunit + servlet测试,另一种是easymock + servlet,在这里重点介绍使用easymock方法进行的junit测试。

 

环境:eclipse 3.7 ,  junit 4 ,  easymock 3.1。

 

测试单元代码如下 : 

 

 

Java代码   收藏代码
  1. import static org.junit.Assert.fail;  
  2. import static org.easymock.EasyMock.*;  
  3.   
  4. import java.io.IOException;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9. import javax.xml.ws.Action;  
  10.   
  11. import org.junit.After;  
  12. import org.junit.Before;  
  13. import org.junit.Test;  
  14.   
  15. import com.joyveb.award.web.AwardResultServlet;  
  16.   
  17. public class ResultServletTest {  
  18.   
  19.     private AwardResultServlet servlet;  
  20.     private HttpServletRequest mockRequest;  
  21.     private HttpServletResponse mockResponse;  
  22.       
  23.     @Before  
  24.     public void setUp(){  
  25.         servlet = new ResultServlet();  
  26.           
  27.         mockRequest = createMock(HttpServletRequest.class);         //加载  
  28.         mockResponse = createMock(HttpServletResponse.class);  
  29.     }  
  30.       
  31.     @After  
  32.     public void tearDown(){  
  33.         verify(mockRequest);        //验证  
  34.         verify(mockResponse);  
  35.     }  
  36.       
  37.       
  38.     @Test  
  39.     public void testDoPostHttpServletRequestHttpServletResponse() throws ServletException, IOException {  
  40.           
  41.         mockRequest.getParameter("id");         //传入参数  
  42.         expectLastCall().andReturn("1");  
  43.           
  44.         mockRequest.getParameter("name");       //传入参数  
  45.         expectLastCall().andReturn("chevy");  
  46.           
  47.         mockRequest.getParameter("gender");     //传入参数  
  48.         expectLastCall().andReturn("男");  
  49.           
  50.         replay(mockRequest);                    //回放  
  51.         replay(mockResponse);  
  52.           
  53.         servlet.doPost(mockRequest, mockResponse);  //调用  
  54.                   
  55.     }  
  56.   
  57. }  
 

 

 

 

 

servlet类就可以根据上面定义的类名,简单写个doPost方法就可以进行junit测试了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JUnit 测试 Java-Spark 可以按照以下步骤进行: 1. 在 pom.xml 文件中添加以下依赖项: ```xml <dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>2.9.3</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.7.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.7.0</version> <scope>test</scope> </dependency> ``` 2. 创建一个测试类,并在类上使用 @ExtendWith(JUnit5.class) 注解。 3. 在测试类中创建一个 Spark 应用程序实例,并在该实例中设置路由。 ```java import static spark.Spark.get; public class SparkAppTest { private SparkApp app; @BeforeEach public void setup() { app = new SparkApp(); app.init(); // Define routes get("/hello", (req, res) -> "Hello World"); get("/hello/:name", (req, res) -> "Hello " + req.params("name")); } @AfterEach public void tearDown() { app.stop(); } @Test public void testHelloWorldRoute() { // Use JUnit assertions to test the route given().when().get("/hello").then().statusCode(200).body(is("Hello World")); } @Test public void testHelloNameRoute() { // Use JUnit assertions to test the route given().when().get("/hello/John").then().statusCode(200).body(is("Hello John")); } } ``` 4. 在测试方法中使用 RestAssured 发送 HTTP 请求,并使用 JUnit 断言来检查响应。 ```java import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.is; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import io.restassured.RestAssured; import spark.Spark; @ExtendWith(SparkExtension.class) public class SparkAppTest { private SparkApp app; @BeforeEach public void setup() { app = new SparkApp(); app.init(); // Define routes get("/hello", (req, res) -> "Hello World"); get("/hello/:name", (req, res) -> "Hello " + req.params("name")); } @AfterEach public void tearDown() { app.stop(); } @Test public void testHelloWorldRoute() { // Use JUnit assertions to test the route given().when().get("/hello").then().statusCode(200).body(is("Hello World")); } @Test public void testHelloNameRoute() { // Use JUnit assertions to test the route given().when().get("/hello/John").then().statusCode(200).body(is("Hello John")); } } ``` 以上就是使用 JUnit 测试 Java-Spark 的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值