记录一次spring+dubbo下的框架单元测试和所遇到的坑
环境
- 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
运行,否则会报注解类找不到的错误。坑啊,误入、误入。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。