1、概述
- 在传统的 JUnit 使用中,在测试 Spring 的时候,需要重复编写像
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("······")
等代码。为了能够简化测试代码编写,Spring 提供了整合 JUnit 的包。
2、整合 JUnit
-
注意版本,Spring 5 以上的版本要求 JUnit 版本是 4.12 以上。
-
引入依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.8</version>
<scope>test</scope>
</dependency>
- 创建测试类:
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class) // 使用 @RunWith 注解
public class SpringJUnitTest {
}
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"}) // @ContextConfiguration 引入核心配置文件
public class SpringJUnitTest {
}
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class}) // @ContextConfiguration 引入核心配置类
public class SpringJUnitTest {
}
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class SpringJUnitTest {
@Autowired // 此时,可以使用 @Autowired 等注解注入由 Spring 容器管理的对象(@ContextConfiguration 配置容器)
private A a;
}
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class SpringJUnitTest {
@Autowired
private A a;
@Test // 测试代码
public void test1() {
a.xxx();
}
}
网友评论