基于spring的junit单元测试

时间:2021-09-14 05:05:08

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);
}

}