共计 2216 个字符,预计需要花费 6 分钟才能阅读完成。
1.4 单元测试与热部署
(1)单元测试
开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确。Spring
Boot 对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的 pom.xml 文件中添加 spring-boot-starter-test 测试依赖启动器,可以通过相关注解实现单元测试
演示:
1.添加 spring-boot-starter-test 测试依赖启动器
在项目的 pom.xml 文件中添加 spring-boot-starter-test 测试依赖启动器,示例代码如下
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
12345678910
注意:使用 Spring Initializr 方式搭建的 Spring Boot 项目,会自动加入 spring-boot-starter-test 测试依赖启动器,无需再手动添加
2.编写单元测试类和测试方法
使用 Spring Initializr 方式搭建的 Spring Boot 项目,会在 src.test.java 测试目录下自动创建与项目主程序启动类对应的单元测试类
@RunWith(SpringRunner.class) // 测试启动器,并加载 Spring Boot 测试注解
@SpringBootTest // 标记为 Spring Boot 单元测试类,并加载项目的 ApplicationContext 上下文环境
class SpringbootDemoApplicationTests {
@Autowired
private DemoController demoController;
//
自动创建的单元测试方法实例
@Test
void contextLoads() {
String demo = demoController.demo();
System.out.println(demo);
}
}
1234567891011121314151617181920212223242526272829303132333435
上述代码中,先使用 @Autowired 注解注入了 DemoController 实例对象,然后在 contextLoads()方法中调用了 DemoController 类中对应的请求控制方法 contextLoads(),并输出打印结果
(2)热部署
在开发过程中,通常会对一段业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大的降低了程序开发效率。为此,Spring Boot 框架专门提供了进行热部署的依赖启动器,用于进行项目热部署,而无需手动重启项目
演示:
1.添加 spring-boot-devtools 热部署依赖启动器
在 Spring Boot 项目进行热部署测试之前,需要先在项目的 pom.xml 文件中添加 spring-boot-devtools 热部署依赖启动器:
<!– 引入热部署依赖
–>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
12345678910111213
由于使用的是 IDEA 开发工具,添加热部署依赖后可能没有任何效果,接下来还需要针对 IDEA 开发工具进行热部署相关的功能设置
- IDEA 工具热部署设置
选择 IDEA 工具界面的【File】->【Settings】选项,打开 Compiler 面板设置页面
选择 Build 下的 Compiler 选项,在右侧勾选“Build project automatically”选项将项目设置为自动编译,单击【Apply】→【OK】按钮保存设置
在项目任意页面中使用组合快捷键“Ctrl+Shift+Alt+/”打开 Maintenance 选项框,选中并打开 Registry 页面,具体如图 1 -17 所示
列表中找到“compiler.automake.allow.when.app.running”,将该选项后的 Value 值勾选,用于指定 IDEA 工具在程序运行过程中自动编译,最后单击【Close】按钮完成设置
3.热部署效果测试
启动 chapter01http://localhost:8080/hello
页面原始输出的内容是“hello Spring Boot”。
为了测试配置的热部署是否有效,接下来,在不关闭当前项目的情况下,将 DemoController
类中的请求处理方法 hello()的返回值修改为“你好,Spring Boot”并保存,查看控制台信息会发现项目能够自动构建和编译,说明项目热部署生效
[外链图片转存失败, 源站可能有防盗链机制, 建议将图片保存下来直接上传(img-RZTfnlsy-1591257868087)(./images/image-20191225141854983.png)]
可以看出,浏览器输出了“你好,Spring Boot”,说明项目热部署配置成功
这些内容都是从拉勾《Java 工程师高薪训练营》上学到的~ 每天学一点,每天进步点,还有拉勾的内推大厂服务,推荐你也看看。