spring-test单元测试(一)-单一java文件单元测试

本文介绍如何使用Spring Test框架进行高效的单元测试。通过精确配置加载所需的Spring配置文件,避免加载整个环境带来的效率问题。文章还详细解释了如何利用注解和自定义配置文件实现特定类的扫描。

使用spring-test框架,它以Junit4为基础,来做单元测试。只加载跟我这次要测试的类有关的代码,其他不加载,不要把整个spring-config环境都加载进来,那样的话每次太慢了。一天就会浪费很多时间。

 

第一步,引入maven坐标,如下:

<dependency>

  <groupId>org.springframework</groupId>

   <artifactId>spring-test</artifactId>

  <version>3.2.3.RELEASE</version>

  <scope>test</scope>

</dependency>

 

第二步,写一个测试类,如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:/spring-config-datasource-dbcp.xml","classpath*:/spring-config-dao.xml","classpath*:/spring-config-test.xml"})
public class DaoUmpInterceptorTest {
    @Resource
    private PluginOrderManager pluginOrderManager;

    @Test
    public void testUmp(){
        long orderId = 27L;
        pluginOrderManager.selectNPOrderInfo(orderId);
    }
}

 

看类头文件,@RunWith和@ContextConfiguration,加入这两个,就正式使用上了spring-test框架。

@ContextConfiguration这里面配置了需要加载的文件,比如我这次只需要用到dbcp.xml,dao.xml这两个文件。

重点说下,spring-config-test.xml文件,我们现在很多bean都是通过注解进来的,比如下面这个:

@Service("pluginOrderManager")
public class PluginOrderManagerImpl extends BaseManager implements PluginOrderManager {

 

这个时候,我们就创建一个spring-config-test.xml文件单独去sccan我要加载的类所在的包路径。像下面这样:

 

最后,这样下来,只加载了下面3个配置文件,这样要比加载整个spring-config环境快速多了。

 

 

 

 

补充说明上面的<context:component-scan>标签

·        base-package:表示扫描注解类的开始位置,即将在指定的包中扫描,其他包中的注解类将不被扫描,默认将扫描所有类路径;

·        resource-pattern:表示扫描注解类的后缀匹配模式,即“base-package+resource-pattern”将组成匹配模式用于匹配类路径中的组件,默认后缀为“**/*.class”,即指定包下的所有以.class结尾的类文件;

·        name-generator:默认情况下的Bean标识符生成策略,默认是AnnotationBeanNameGenerator,其将生成以小写开头的类名(不包括包名);可以自定义自己的标识符生成策略;

·        use-default-filters:默认为true表示过滤@Component、@ManagedBean、@Named注解的类,如果改为false默认将不过滤这些默认的注解来定义Bean,即这些注解类不能被过滤到,即不能通过这些注解进行Bean定义;

·        annotation-config:表示是否自动支持注解实现Bean依赖注入,默认支持,如果设置为false,将关闭支持注解的依赖注入,需要通过<context:annotation-config/>开启。

 

 

<context:include-filter>-白名单(针对性加载)

<context:exclude-filter>-黑名单(过滤掉不加载)

两种filter都适用Type的类型:

 

 

 

 

转载于:https://my.oschina.net/wangxindong/blog/794595

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值