一、原因:
在使用了spring的web项目中,所有的对象都交给spring容器管理:比如dataSource,sqlSessionFactory,mapper代理对象,service对象等。这样的话,进行单元测试就变得很复杂,如下两种方式可以实现:
1。让测试类继承BeanFactoryAware,或者ApplicationContextAware,将容器本身注入进来,然后就可以获取容器中的对象进行单元测试。
2。还有就是spring与junit4的整合:
# 加入jar包:junit4jar包,spring-tes.jar,spring-xxx依赖jar包。
#创建测试目录,测试包,测试类,
测试目录与src同级目录;测试包与src包名一致,测试类名:要测试的类+Test。
二。重点在测试类:两种方式去实现
1。自定义一个测试基类,在基类中完成常用的注解配置,然后让测试类继承该类,可以省去很多重复的注解代码:
测试基类代码如下:
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transa