`
taody
  • 浏览: 101156 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

<<项目架构那点儿事>>——快速构建Junit用例

阅读更多

欢迎访问我的社区资源论坛http://www.javadt.com

【前言】按照惯例,在实际项目中我往往会对自己编写的程序进行测试,当测试通过后才能将其用于实战中,当然,编写单元测试是不可避免的,可以直接清晰的检验出我们程序的可靠性、可只执行性,从中发现问题从而得到及时的解决,这里我就谈谈我们项目里Junit编写规范、模板,其中包括对web层、业务层的分布单元测试。


【目录】
          -----1.Struts2Junit实现Web层单元测试
          -----2.SpringJunit实现业务层单元测试


【内容】
          一、编写struts2Junit(依赖包:struts2-junit-plugin-2.1.8.jar,junit4,xwork-core-2.2.1.jar,struts2-core-2.2.3.jar,版本号可以任意struts2版本),我以User为例子,下面是UserWebJunit:

  1. /**
  2. * @author fisher
  3. * @description struts2 单元测试用例模板
  4. */

  5. public class Struts2JunitTemplate extends StrutsTestCase {

  6.         /**
  7.          * @description 测试ActionMapping,验证资源是否请求
  8.          */
  9.         @Test
  10.         public void testGetActionMapping() {
  11.                 ActionMapping mapping = getActionMapping("/test/testAction.action");
  12.                 assertNotNull(mapping);
  13.                 assertEquals("/test", mapping.getNamespace());//验证命名空间
  14.                 assertEquals("testAction", mapping.getName());//验证Action名称是否对应
  15.         }

  16.         /**
  17.          * @description 创建Action代理,验证请求参数、页面跳转
  18.          * @throws Exception
  19.          */
  20.         @Test
  21.         public void testGetActionProxy() throws Exception {
  22.                 // 在执行Action方法之前,对request进行请求参数设置
  23.                 request.setParameter("name", "fisher");

  24.                 ActionProxy proxy = getActionProxy("/test/testAction.action");
  25.                 assertNotNull(proxy);
  26.                 proxy.setExecuteResult(false);
  27.                 
  28.                 @SuppressWarnings("rawtypes")
  29.                 UserAction action = (UserAction ) proxy.getAction();//通过ActionProxy获得UserAction实例
  30.                 assertNotNull(action);
  31.                 
  32.                 String result = proxy.execute();//执行execute方法,返回结果
  33.                 assertEquals(Action.SUCCESS, result);//比对返回结果是否和UserAction中的执行结果一致
  34.         }


  35. }
复制代码


          二、编写SpringJunit(依赖包:spring-test-3.0.4.RELEASE.jar,junit4,以及其他的spring核心包),还是以User为例子,我们编写UserTestUnit来验证我们后台的方法,如下:
  1. /**
  2. * @author fisher
  3. * @description 用户业务测试
  4. */
  5. // 使用springJunit4
  6. @RunWith(SpringJUnit4ClassRunner.class)
  7. // spring配置文件加载(locations为文件路径)
  8. @ContextConfiguration(locations = {
  9.                 "classpath:spring/application-hibernate.xml",
  10.                 "classpath:spring/application-common-service.xml",
  11.                 "classpath:spring/application-sys-service.xml" })
  12. public class UserTestJunit {
  13.         @Autowired
  14.         UserService userService;// 自动注入userService

  15.         /**
  16.          * @description 测试查询用户
  17.          * @throws Exception
  18.          */
  19.         @Test
  20.         public void query() throws Exception {
  21.                 List result = userService.getAllEmployee();
  22.                 Assert.notEmpty(result);
  23.         }

  24.         /**
  25.          * @description 测试用户添加
  26.          * @throws Exception
  27.          */

  28.         @Test
  29.         public void save() throws Exception {
  30.                 User user = new User();
  31.                 user.setUsrCode("test001");
  32.                 user.setUsrName("test");
  33.                 user.setPassword("123");
  34.                 user.setIdCard("513029198503140026");
  35.                 user.setEmail("aaa@sina.com");
  36.                 User u = userService.save(user);
  37.                 Assert.notNull(u);
  38.                 org.junit.Assert.assertEquals("test", user.getUsrName());
  39.         }

  40.         /**
  41.          * @description 测试用户更新
  42.          * @throws Exception
  43.          */

  44.         @Test
  45.         public void update() throws Exception {
  46.                 User user = new User();
  47.                 user.setUsrCode("test001");
  48.                 user.setUsrName("test");
  49.                 user.setPassword("123");
  50.                 user.setIdCard("513029198503140026");
  51.                 user.setEmail("aaa@sina.com");
  52.                 User u = userService.update(user);
  53.                 Assert.notNull(u);
  54.                 org.junit.Assert.assertEquals("test", user.getUsrName());
  55.         }

  56.         /**
  57.          * @description 测试用户删除
  58.          * @throws Exception
  59.          */

  60.         @Test
  61.         public void del() throws Exception {
  62.                 User user = new User();
  63.                 user.setUserId("1");
  64.                 User u = userService.delete(user);
  65.                 Assert.notNull(u);
  66.                 org.junit.Assert.assertEquals("1", user.getUserId());
  67.         }
  68. }
复制代码
【总结】单元测试不仅限于此,灵活性比较大,要结合实际进行编写,上面两种测试是按照我们项目中规范编写,大家可以作为参考,自我觉得还是比较实用而且用注解方式比较方便。
0
0
分享到:
评论

相关推荐

    JavaSE测试类必备的两个jar包 ——junit-4.12.jar、hamcrest-core-1.3.jar

    &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.12&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.hamcrest&lt;/groupId&gt; &lt;artifactId&gt;hamcrest-core&lt;/artifactId&gt; &lt;version&gt;1.3&lt;/...

    Maven整合ssm

    &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;3.8.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;javax.servlet-api...

    java测试用例JUnit教程

    Java 测试用例 JUnit 教程 Java 是一种广泛使用的编程语言,而 JUnit 是 Java 测试框架中最流行的测试框架之一。JUnit 提供了一组丰富的断言方法,帮助开发者编写可靠的测试用例,从而提高代码质量。本教程旨在...

    gwt-webdriver-junit-runstyle:用于通过 WebDriver 的 JSON over HTTP 协议进行远程测试的 GWT JUnit 运行样式

    ): &lt;dependency&gt;&lt;groupId&gt;com.github.neothemachine&lt;/groupId&gt;&lt;artifactId&gt;gwt-webdriver-junit-runstyle&lt;/artifactId&gt;&lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;/dependency&gt;调整gwt-maven-plugin...

    WordExportUtll.java

    可以替换word文本中的变量(说明用特殊符号区分),可以替换表格中的变量,可以替换文本框中的变量,图片部分替换不... &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.7&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt;

    Netty的简单入门demo

    &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.6&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;!-- https://mvnrepository.com/artifact/io.netty/netty-all --&gt; &lt;dependency&gt; ...

    软件单元测试——JUnit使用

    "软件单元测试——JUnit使用" 软件单元测试是软件开发过程中的一种测试方法,它是指对软件中的最小单元进行测试,以确保软件的可靠性和正确性。JUnit是一个流行的Java测试框架,广泛应用于软件单元测试中。 在本...

    Eclipse安装插件——junit

    Eclipse是一款广泛使用的Java集成开发环境(IDE),它提供了丰富的功能,包括代码编辑、调试、构建和测试等。为了进一步增强其功能,Eclipse支持安装各种插件,Junit是其中一个非常重要的插件,用于进行单元测试。 ...

    如何在Maven项目中运行JUnit5测试用例实现

    Maven 项目中运行 JUnit 5 测试用例实现 在 Maven 项目中运行 JUnit 5 测试用例实现是 Java 开发者经常遇到的问题。本文将详细介绍如何在 Maven 项目中运行 JUnit 5 测试用例实现,包括编写 JUnit 5 测试用例、引入...

    做单元测试所用jar包,主要是hamcrest-core-1.3.jar junit-4.12.jar

    &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.12&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.hamcrest&lt;/groupId&gt; &lt;artifactId&gt;hamcrest-core&lt;/artifactId&gt; &lt;version&gt;1.3&lt;/...

    JUnit单元测试用例实战

    JUnit 单元测试用例实战 JUnit 是一款流行的 Java 单元测试框架,广泛应用于 Java 软件开发中。单元测试是软件测试中的一种,旨在确保每个单元(即方法或函数)正确地执行其预期行为。本文将介绍 JUnit 单元测试的...

    junit-4.8.2.jar

    junit/junit/ Maven依赖写法: &lt;dependency&gt; &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.8.2&lt;/version&gt; &lt;/dependency&gt;

    Junit5依赖整合包

    为了在项目中使用这个整合包,你需要在项目的构建配置文件(如Maven的pom.xml或Gradle的build.gradle)中添加对应的依赖。对于Maven,你可能需要添加以下代码段: ```xml &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;...

    junit junit junit

    junit-4.10.jar,测试jar,...&lt;dependency&gt; &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.12&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt;

    Eclipse下Ant+Junit构建文件

    在Ant构建脚本中,可以使用`&lt;junit&gt;`任务来运行JUnit测试。例如: ```xml &lt;target name="test"&gt; &lt;junit printsummary="yes" haltonfailure="no"&gt; &lt;classpath&gt; &lt;pathelement location="bin"/&gt; &lt;!-- 添加JUnit库 ...

    junit4.12.zip和依赖的jar包

    &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.12&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.hamcrest&lt;/groupId&gt; &lt;artifactId&gt;hamcrest-core&lt;/artifactId&gt; &lt;version&gt;1.3&lt;/version&gt; &lt;/dependency&gt; ...

    spring boot Junit4配置

    &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.8.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;!-- Spring Test --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-test&lt;/...

    不收取积分的最新版的junit5

    &lt;artifactId&gt;junit-jupiter-api&lt;/artifactId&gt; &lt;version&gt;5.7.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.junit.platform&lt;/groupId&gt; &lt;artifactId&gt;junit-platform-commons&lt;/...

Global site tag (gtag.js) - Google Analytics