zoukankan      html  css  js  c++  java
  • 使用 Spring 进行单元测试

    一、使用spring中对Junit框架的整合功能

        除了junit4和spring的jar包,还需要spring-test.jar。引入如下依赖:

    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-test</artifactId>  
        <version>3.1.1.RELEASE</version>  
    </dependency>
    package service; 
     import static org.Junit.Assert.assertEquals; 
    
     import org.Junit.Test; 
     import org.Junit.runner.RunWith; 
     import org.Springframework.beans.factory.annotation.Autowired; 
     import org.Springframework.test.context.ContextConfiguration; 
     import org.Springframework.test.context.Junit4.SpringJUnit4ClassRunner; 
     import org.Springframework.transaction.annotation.Transactional; 
    
     import domain.Account; 
    
     @RunWith(SpringJUnit4ClassRunner.class) 
     @ContextConfiguration("/config/Spring-db1.xml") 
     @Transactional 
     public class AccountServiceTest1 { 
         @Autowired 
         private AccountService service; 
        
         @Test 
         public void testGetAcccountById() { 
     Account acct = Account.getAccount(1, "user01", 18, "M"); 
             service.insertIfNotExist(acct); 
             Account acct2 = service.getAccountById(1); 
             assertEquals(acct,acct2); 
         } 
     }

    对这个类解释一下:

    • @RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner,这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化
    • @ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源,支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定 classpath 下的 /config/Spring-db1.xml 为配置文件的位置
    • @Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了
    • @Autowired 体现了我们的测试类也是在 Spring 的容器中管理的,他可以获取容器的 bean 的注入,您不用自己手工获取要测试的 bean 实例了
    • testGetAccountById 是我们的测试用例:注意和上面的 AccountServiceOldTest 中相同的测试方法的对比,这里我们不用再 try-catch-finally 了,事务管理自动运行,当我们执行完成后,所有相关变更会被自动清除

    参考:http://www.ibm.com/developerworks/cn/java/j-lo-springunitest/index.html

  • 相关阅读:
    防抖函数
    video.js汉化
    vscode 设置
    webpack配置
    寄生组合继承
    数组排序
    操作节点的方法
    vscde软件
    vue目录详解
    前端
  • 原文地址:https://www.cnblogs.com/liaojie970/p/6222247.html
Copyright © 2011-2022 走看看