基于spring的junit单元测试

来源:互联网 发布:新浪微博抱歉网络繁忙 编辑:程序博客网 时间:2024/05/18 09:07

1,使用spring的测试套件:

   在maven中加入

      

<dependency>              <groupId>junit</groupId>              <artifactId>junit</artifactId>              <version>4.9</version>              <scope>test</scope>          </dependency>   <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-test</artifactId>              <version> 3.2.4.RELEASE  </version>              <scope>provided</scope>          </dependency> 
 2, 在相应位置创建测试类

    1) 创建基类,主要用来加载配置文件的

        

    @RunWith(SpringJUnit4ClassRunner.class)  //使用junit4进行测试      @ContextConfiguration       ({"/spring/app*.xml","/spring/service/app*.xml"}) //加载配置文件            //------------如果加入以下代码,所有继承该类的测试类都会遵循该配置,也可以不加,在测试类的方法上///控制事务,参见下一个实例      //这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!      //@Transactional      //这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时//指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!      //@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)      //------------      public class BaseJunit4Test {      }  
   2) 创建需要使用的测试类

      

public class UserAssignServiceTest extends BaseJunit4Test{           @Resource  //自动注入,默认按名称           private IBaseDao baseDao;            @Test   //标明是测试方法      @Transactional   //标明此方法需使用事务      @Rollback(false)  //标明使用完此方法后事务不回滚,true时为回滚       public void insert( ) {              String sql="insert into user(name,password) values(?,?)";              Object[] objs=new Object[]{"00","000"};              baseDao.insert( sql , objs );                        String sql1="select * from user where name=? and password=? ";              List<Map<String,Object>> list=baseDao.queryForList( sql1 , objs );              System.out.println(list);              assertTrue(list.size( )>0);            }    }