Struts2单元测试-1
1、 网络上说对web的action测试没有必要,我想可能action中的功能跟service层的功能粒度差不多,我们可以对service层测试即可。对于Dao层,由于粒度较小,一个业务可能需要多个dao方法,所以可以根据本身项目的测试粒度要求以及项目时间紧张度来做决定是否所有的层都测过去。
2、 Action一般测试通过web客户端点击来进行,如果需要使用代码进行模拟测试,则需要使用以下方法。
3、 struts2中的action测试,由于没有http请求,request和session是为空的,所以我们必须能够模拟web容器的请求行为。在这里Struts2给出了一个插件struts2-junit-plugin-2.1.8.1.jar,这个插件需要spring-test.jar包的支持,这样就可以轻松地进行测试了。
4、 struts2-junit-plugin-2.1.8.1.jar下载地址为:
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.struts/struts2-junit-plugin/2.1.8
5、 首先测试类必须继承StrutsSpringTestCase这个类,StrutsSpringTestCase是StrutsTestCase的子类,这个单元测试类默认读取配置文件applicationContext.xml(跟spring默认读取一样,放在类路径的根目录下),若此文件在其他位置,我们可以通过重写getContextLocations()来指定你的配置文件。
6、 具体例子:
public class UserActionTest extends StrutsSpringTestCase {
@Autowired
@Before
public void setUp() {
try
{ super.setUp(); }
catch (Exception e)
{ e.printStackTrace(); }
}
@After
public void tearDown() {}
/*
* request是类StrutsSpringTestCase的成员变量,是MockHttpServletRequest对象
* 在这里mock出来的一个web中的一个request
* 通过,request.setParameter("userId", "1");来模拟web传入的参数
* 通过executeAction("/user/*Action!*.action");来模拟调用web链接
*/
@Test public void testRegisterUser() throws UnsupportedEncodingException, ServletException {
request.setParameter("username", "gsdhaiji_cai");
String result = executeAction("/user/user!registerUser.action");
assertEquals("\"{}\"", result);}
}
}
分享到:
相关推荐
它扩展了JUnit,使得Struts2的控制器可以在单元测试环境中运行,从而能够更好地测试Action和整个MVC流程。这个插件在2.1.8版本中也包含了对Struts2核心库的依赖,确保了测试的兼容性。 最后,`json-lib-2.1.jar`是...
在使用`struts2-junit-plugin-2.1.8.1.jar`之前,你需要确保已经安装并配置了以下组件: 1. **JDK**:Java Development Kit,用于编译和运行Java程序,确保版本与Struts2和JUnit兼容。 2. **Apache Maven或Gradle**...
struts2结合junit
可解决java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/Object;... java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils struts2.1.8错误
struts2-junit-plugin-2.1.8-sources.jar
`license.txt`文件通常包含软件的许可协议信息,对于`struts2-junit-plugin-2.1.6.jar`来说,这意味着使用这个插件需要遵守其中指定的条款和条件,例如Apache License 2.0等常见的开源许可证。 总的来说,`struts2-...
struts2-junit-plugin-2.2.1.1.jar
struts2-junit-plugin-2.3.16.3.jar Java开发常用包
struts2-junit-plugin-2.2.3.1-sources.jar
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
struts2-junit-plugin-2.2.3.1.jar
Struts2SpringUnitDemo是一个示例项目,...通过这个项目,开发者可以学习到如何在实际应用中结合Struts2和Spring的优势,以及如何使用单元测试确保代码的健壮性。这对于提升Java Web应用的开发效率和质量具有重要意义。
struts2-junit-plugin-2.5.2.jar, struts2-osgi-admin-bundle-2.5.2.jar, struts2-osgi-demo-bundle-2.5.2.jar, struts2-osgi-plugin-2.5.2.jar, struts2-oval-plugin-2.5.2.jar, struts2-pell-multipart-plugin-...
struts-junit spring-mock spring-test junit等的javadoc.jar格式的API文档,直接导入Eclipse/MyEclipse/Netbeans等IDE即可实现快速API查询。 包含以下文件: ...struts2-junit-plugin avadoc.jar
struts2-struts1-plugin-2.3.30.jar, struts2-testng-plugin-2.3.30.jar, struts2-tiles-plugin-2.3.30.jar, struts2-tiles3-plugin-2.3.30.jar, tiles-api-2.2.2.jar, tiles-compat-3.0.1.jar, tiles-core-2.2.2....
gxp-plugin-2.5.10.jar,struts2-jasperreports-plugin-2.5.10.jar,struts2-javatemplates-plugin-2.5.10.jar,struts2-jfreechart-plugin-2.5.10.jar,struts2-json-plugin-2.5.10.jar,struts2-junit-plugin-2.5.10....
这些库的组合表明这是一个可能用于企业级Java Web开发的环境,涵盖了数据处理(jxl)、XML操作(dom4j)、JSON序列化、单元测试(JUnit)、日志管理(Log4j)以及MVC框架(Struts2)等关键方面。对于理解和构建此类...
1. Struts2的测试挑战:由于Struts2处理请求的方式,直接进行单元测试可能会比较复杂,通常需要模拟Action和Result。 2. 使用Mockito:Mockito是一个流行的Java模拟框架,可以帮助我们模拟依赖,使测试更隔离。 3....