[Spring Framework]Spring整合Junit
2023-09-27 14:26:45 时间
Junit回顾
JUnit是一个Java语言的单元测试框架。
我们创建Java类进行单元测试的时候,我们要求这个Java类:
- 此类是public
- 此类提供公共的无参构造器
我们在Java类中声明单元测试方法,此时的单元测试方法也有要求:
- 方法的权限是public
- 此方法没有返回值
- 此方法没有形参
- 此单元测试方法上需要声明注解:@Test
在我们声明好单元测试方法后,就可以在方法体内测试相关的代码!
Spring整合Junit
整合Junit与整合Druid和MyBatis差异比较大,为什么呢?Junit是一个搞单元测试用的工具,它不是我们程序的主体,也不会参加最终程序的运行,从作用上来说就和之前的东西不一样,它不是做功能的,看做是一个辅助工具就可以了。
项目背景同前文的Spring整合MyBatis
整合步骤
步骤1:引入依赖
pom.xml
<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.2.10.RELEASE</version>
</dependency>
步骤2:编写测试类
在test\java下创建一个AccountServiceTest,这个名字任意
//设置类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//设置Spring环境对应的配置类
@ContextConfiguration(classes = {SpringConfiguration.class}) //加载配置类
//@ContextConfiguration(locations={"classpath:applicationContext.xml"})//加载配置文件
public class AccountServiceTest {
//支持自动装配注入bean
@Autowired
private AccountService accountService;
@Test
public void testFindById(){
System.out.println(accountService.findById(1));
}
@Test
public void testFindAll(){
System.out.println(accountService.findAll());
}
}
注意:
- 单元测试,如果测试的是注解配置类,则使用
@ContextConfiguration(classes = 配置类.class)
- 单元测试,如果测试的是配置文件,则使用
@ContextConfiguration(locations={配置文件名,...})
- Junit运行后是基于Spring环境运行的,所以Spring提供了一个专用的类运行器,这个务必要设置,这个类运行器就在Spring的测试专用包中提供的,导入的坐标就是这个东西
SpringJUnit4ClassRunner
- 上面两个配置都是固定格式,当需要测试哪个bean时,使用自动装配加载对应的对象,下面的工作就和以前做Junit单元测试完全一样了
总结
知识点1:@RunWith
名称 | @RunWith |
---|---|
类型 | 测试类注解 |
位置 | 测试类定义上方 |
作用 | 设置JUnit运行器 |
属性 | value(默认):运行所使用的运行器 |
知识点2:@ContextConfiguration
名称 | @ContextConfiguration |
---|---|
类型 | 测试类注解 |
位置 | 测试类定义上方 |
作用 | 设置JUnit加载的Spring核心配置 |
属性 | classes:核心配置类,可以使用数组的格式设定加载多个配置类 locations:配置文件,可以使用数组的格式设定加载多个配置文件名称 |
相关文章
- Spring Assert 断言
- Spring Boot 学习(3)
- Spring Boot 2.4.0 发布,配置文件重大调整,不要乱升级!!
- 大量用户反馈 QQ 账号被盗;AirPods Pro2 或支持查找功能;Spring Boot 2.7.1发布|极客头条
- 07点睛Spring MVC4.1-ContentNegotiatingViewResolver
- Spring cloud:unknown property 'feign hystrix'
- Spring整合Junit框架进行单元测试Demo
- Spring学习1-初识Spring
- Spring Cloud Hystrix 熔断器(五)
- Spring Cloud Feign 服务消费调用(三)
- 观察者模式在spring中的应用
- Spring中@Async用法总结
- spring 自己定义标签 学习二
- Spring Boot(二)Customizing the Banner
- Junit单元测试的简单使用(主要是在spring框架下的项目)