Spring集成Junit
本文最后更新于:2 年前
问题引入
在测试类中,每个测试方法都有以下两行代码:
1 |
|
这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。
解决思路:
- 让 SpringJunit 负责创建 Spring 容器,但是需要将配置文件的名称告诉它
- 将需要进行测试Bean直接在测试类中进行注入
Spring集成Junit步骤
- 导入 spring 集成 Junit 的坐标;
- 使用 @Runwith 注解替换原来的运行期;
- 使用 @ContextConfiguration 指定配置文件或配置类;
- 使用 @Autowired 注入需要测试的对象;
- 创建测试方法进行测试。
Spring集成Junit代码实现
导入 spring 集成 Junit 的坐标
1
2
3
4
5
6
7<!--此处需要注意的是,spring5及以上版本要求 junit的版本必须是 4.12以上-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
</dependencies>使用 @Runwith 注解替换原来的运行期
1
2
3@RunWith(SpringJUnit4ClassRunner.class)
public class SpringJunitTest {
}使用 @ContextConfiguration 指定配置文件或配置类
1
2
3
4
5@RunWith(SpringJUnit4ClassRunner.class) //指定运行内核
//@ContextConfiguration("classpath:applicationContext.xml") //指定核心配置文件
@ContextConfiguration(classes = {SpringConfiguration.class}) //指定核心配置类
public class SpringJunitTest {
}创建测试方法进行测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18@RunWith(SpringJUnit4ClassRunner.class) //指定运行内核
//@ContextConfiguration("classpath:applicationContext.xml") //指定核心配置文件
@ContextConfiguration(classes = {SpringConfiguration.class}) //指定核心配置类
public class SpringJunitTest {
@Autowired
private UserService userService;
@Autowired
private DataSource dataSource;
@Test
public void test1() throws SQLException {
userService.save();
Connection conn = dataSource.getConnection();
System.out.println(conn);
}
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!