Struts2单元测试:使用Junit测试Action

开发 后端
使用Struts2的Junit Plugin测试Action是非常的方便的,如果在开发中采用TDD模式的话推荐使用。不说废话了,直入主题,已具体实例说话!

使用Struts2的Junit Plugin测试Action是非常的方便的,如果在开发中采用TDD模式的话推荐使用。不说废话了,直入主题,已具体实例说话!

1、在原有的Struts2工程加入JUnit Plugin和它依赖的Spring包:

  1. struts2-junit-plugin-2.1.8.jar 
  2. org.springframework.core-3.0.3.RELEASE.jar 
  3. org.springframework.test-3.0.3.RELEASE.jar 

2、新建个Action,我这里采用的Annotation的方式,可以实现零配置。TestAction.java

  1. @Result(location = "/index.jsp"
  2. public class TestAction extends ActionSupport { 
  3.     private String param; 
  4.  
  5.     public String execute() { 
  6.         return SUCCESS; 
  7.     } 
  8.  
  9.     public String getParam() { 
  10.         return param; 
  11.     } 
  12.  
  13.     public void setParam(String param) { 
  14.         this.param = param; 
  15.     } 
  16.  

3、在工程中添加JUnit包(此步骤略了,搞不定这部的就不要看此篇文章啦!),创建TestCase,TestActionTest.java

  1. import java.robinleex.action.TestAction; 
  2.  
  3. import org.apache.struts2.StrutsTestCase; 
  4. import org.junit.Test; 
  5.  
  6. import com.opensymphony.xwork2.ActionProxy; 
  7.  
  8. public class TestActionTest extends StrutsTestCase { 
  9.  
  10.     @Test 
  11.     public void testExecute() throws Exception { 
  12.         ActionProxy proxy = null
  13.         TestAction test = null
  14.          
  15.         request.setParameter("param""test..."); 
  16.         proxy = getActionProxy("/test.action"); 
  17.         test = (TestAction)proxy.getAction(); 
  18.  
  19.         String result = proxy.execute(); 
  20.          
  21.         assertEquals("success", result); 
  22.         assertEquals("test...", test.getParam()); 
  23.  
  24.  
  25.     } 
  26.  

跑起来就可以了,非常好用,这个示例测试在Action当中传入一个参数并取出参数值。JUnit Plugin会模拟Servlet容器,模拟出 HttPServletRequest,HttpServletResponse,ServletContext,PageContext...

示例源码请见附件

有问题可以联系作者,联系方式:robinleex@gmail.com

【编辑推荐】

  1. JUnit测试框架简介
  2. 走进Java测试利器:JUnit
  3. JUnit测试骨架简介
  4. JUnit常用断言方法

 

 

责任编辑:艾婧 来源: robinleex
相关推荐

2017-01-14 23:26:17

单元测试JUnit测试

2017-01-16 12:12:29

单元测试JUnit

2009-06-08 19:59:09

EclipseJUnit单元测试

2017-01-14 23:42:49

单元测试框架软件测试

2012-07-22 20:34:27

springMVCJUnit

2011-11-18 15:18:41

Junit单元测试Java

2017-03-23 16:02:10

Mock技术单元测试

2023-07-26 08:58:45

Golang单元测试

2009-06-08 19:57:29

EclipseJUnit4单元测试

2009-06-08 20:04:06

EclipseJUnit4单元测试

2013-06-04 09:49:04

Spring单元测试软件测试

2012-05-17 09:09:05

Titanium单元测试

2021-01-07 14:06:30

Spring BootJUnit5Java

2020-08-18 08:10:02

单元测试Java

2012-02-07 09:08:50

Feed4JUnitJava

2024-10-16 16:09:32

2021-08-26 11:00:54

Spring BootJUnit5Java

2009-06-02 16:05:04

Struts驱动开发

2021-03-28 23:03:50

Python程序员编码

2010-03-04 15:40:14

Python单元测试
点赞
收藏

51CTO技术栈公众号