[spring]集成junit
junit是常用的测试类,spring有专门的集成junit框架的jar包:spring-text。maven中央仓库链接:Maven Repository: org.springframework » spring-test。
在spring集成junit之后,我们可以给我们的测试类自动配置并管理上下文对象,不用再每个方法都写获取上下文对象的代码:
//获取上下文
ApplicationContext context = new AnnotationConfigApplicationContext(SpringBeanXMLSubstitute.class);
一
集成junit中,我们需要先导入spring-text。在版本选择这里,选择和我们的spring-context相同版本的spring-text。你可以直接将spring-context的maven版本复制过来:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>你的spring-context版本</version>
</dependency>
二
导入相应的jar包坐标之后,我们需要使用@Runwith替换原来的运行期:
@RunWith(SpringJUnit4ClassRunner.class)
public class Mytest {
//......
}
@RunWith(SpringJUnit4ClassRunner.class) 是 JUnit 4 中用于集成 Spring 测试框架的核心注解,它是能为测试类提供 Spring 容器的支持,使得测试类能够直接使用 Spring 的相关功能。
三
在给测试类引入Spring功能之后,我们还需要给测试类导入我们的springbean配置。
如果你是XML配置文件:
使用:
@ContextConfiguration("classpath:beans.xml")
如果你是全注解开发(配置类):
使用:
@ContextConfiguration(classes = {SpringBeanXMLSubstitute.class, SpringMainXML.class})
其中,@ContextConfiguration注解中,属性classes的值是一个数组,你可以在引入多个全注解配置Bean的类(也可以将这些类用一个主配置类import进去)
四
之后,我们再进行测试,就不需要反复写获取上下文对象的方法了。我们可以直接通过注解注入,来获取我们测试时要使用到的对象: