`

Struts2单元测试-1(使用struts2-junit-plugin)

 
阅读更多

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、  具体例子:

//spring的测试方式
public class UserActionTest extends StrutsSpringTestCase {
    @Autowired
     // 在执行每个test之前,都执行setUp;
    @Before
    public void setUp() {
       try
      { super.setUp(); }
        catch (Exception e)
     { e.printStackTrace(); }
}
    // 在执行每个test之后,都要执行tearDown
    @After
    public void tearDown() {}
    //这个是单元测试方法,一个方法测试一个功能或者一个action
    /*
     * request是类StrutsSpringTestCase的成员变量,是MockHttpServletRequest对象
     * 在这里mock出来的一个web中的一个request
     * 通过,request.setParameter("userId", "1");来模拟web传入的参数
     * 通过executeAction("/user/*Action!*.action");来模拟调用web链接
     */
    @Test//注意了,这里需要以test作为测试方法的前缀,否则会出现找不到测试方法的异常,但是对于没有继承StrutsSpringTestCase的测试类只要上面有@Test即可。
    public void testRegisterUser() throws UnsupportedEncodingException, ServletException  {
       request.setParameter("username", "gsdhaiji_cai");
       String result = executeAction("/user/user!registerUser.action");
       assertEquals("\"{}\"", result);}
//其实这里的判断是根据action返回的response里面的数据,并不是action中的return 后面的那个字符串。
}
}

 

 

分享到:
评论

相关推荐

    struts-json-plugin-2.1.8.jar struts2-junit-plugin-2.1.8.jar json-lib-2.1.jar

    它扩展了JUnit,使得Struts2的控制器可以在单元测试环境中运行,从而能够更好地测试Action和整个MVC流程。这个插件在2.1.8版本中也包含了对Struts2核心库的依赖,确保了测试的兼容性。 最后,`json-lib-2.1.jar`是...

    struts2-junit-plugin-2.1.8.1.jar

    在使用`struts2-junit-plugin-2.1.8.1.jar`之前,你需要确保已经安装并配置了以下组件: 1. **JDK**:Java Development Kit,用于编译和运行Java程序,确保版本与Struts2和JUnit兼容。 2. **Apache Maven或Gradle**...

    struts2-junit-plugin-2.3.24.1

    struts2结合junit

    struts2-junit-plugin-2.1.8.jar

    可解决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

    struts2-junit-plugin-2.1.8-sources.jar

    struts2-junit-plugin-2.1.6.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.2.1.1.jar

    struts2-junit-plugin-2.3.16.3.jar

    struts2-junit-plugin-2.3.16.3.jar Java开发常用包

    struts2-junit-plugin-2.2.3.1-sources.jar

    struts2-junit-plugin-2.2.3.1-sources.jar

    Struts2开发常用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

    struts2-junit-plugin-2.2.3.1.jar

    Struts2SpringUnitDemo单元测试

    Struts2SpringUnitDemo是一个示例项目,...通过这个项目,开发者可以学习到如何在实际应用中结合Struts2和Spring的优势,以及如何使用单元测试确保代码的健壮性。这对于提升Java Web应用的开发效率和质量具有重要意义。

    struts-2.5.2-all所有jar包

    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文档

    struts-junit spring-mock spring-test junit等的javadoc.jar格式的API文档,直接导入Eclipse/MyEclipse/Netbeans等IDE即可实现快速API查询。 包含以下文件: ...struts2-junit-plugin avadoc.jar

    struts-2.3.30-all所有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....

    struts-2.5.10-all所有jar包

    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....

    jxl.jar;dom4j.jar;jsonplugin-0.34.jar;junit-3.8.2.jar;log4j-1.2.14.jar;struts2-codebehind-plugin-2.0

    这些库的组合表明这是一个可能用于企业级Java Web开发的环境,涵盖了数据处理(jxl)、XML操作(dom4j)、JSON序列化、单元测试(JUnit)、日志管理(Log4j)以及MVC框架(Struts2)等关键方面。对于理解和构建此类...

    Junit 单元测试完整案例

    1. Struts2的测试挑战:由于Struts2处理请求的方式,直接进行单元测试可能会比较复杂,通常需要模拟Action和Result。 2. 使用Mockito:Mockito是一个流行的Java模拟框架,可以帮助我们模拟依赖,使测试更隔离。 3....

Global site tag (gtag.js) - Google Analytics