牛骨文教育服务平台(让学习变的简单)
博文笔记

记录一次spring+dubbo下的框架单元测试和所遇到的坑

创建时间:2017-04-20 投稿人: 浏览次数:1665

环境

  • spring:4.0
  • dubbo:2.8.4
  • Eclipse:Neon.3 Release (4.6.3)
  • maven:4.0.0

依赖注入

依赖主要有spring和context以及dubbo这里不再赘述。直接是单元测试所需的依赖包:在<dependency></dependency>下添加以下依赖:

<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>

编写测试父类

在/src/test/java下添加BaseJunitTest.java

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.skycloud.zkvm_collector.zabbizutil.GetDataByKey;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/spring/zkvm_collector-consumer.xml"})
public class BaseJunitTest {
}

这是一个测试父类,其中最主要的配置是@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/spring/zkvm_collector-consumer.xml"})

其中@RunWith指出了我们此处用junit4测试框架,而@Context则指出来spring的xml配置文件位置。接下来编写测试类代码

测试类代码

import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Reference;
public class CollectorTest  extends BaseJunitTest{
    private static Logger logger=Logger.getLogger(CollectorTest.class);

    @Autowired 
    private Collectors collectors;

    @Test
    public void test(){
        //这里写你的测试代码
    }
}

使用自动注解@Autowired扫描注解。就可以写自己的测试代码了。

注意:

在eclipse中不能直接运行junit,而要在测试代码ctrl+f11运行,否则会报注解类找不到的错误。坑啊,误入、误入。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。