简单学Spring Boot | 博客项目的测试

举报
TiAmoZhang 发表于 2025/07/31 14:33:55 2025/07/31
【摘要】 本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性

12.png

综合应用: 博客项目的测试


01、案例描述

对于Spring Boot博客项目而言,实施测试能显著提升代码质量和确保功能的准确性。测试的关键内容涵盖单元测试,特别是针对服务层中执行博客文章创建、读取、更新和删除操作的方法。采用TDD方法,系统地完善PostService服务层的代码,确保每一项功能都经过严密验证。


02、案例实现

要利用TDD优化这段代码,首先需要按照以下3个步骤进行。

(1) 编写测试用例: 在实现或优化功能代码之前,编写针对PostService类的方法的测试用例。

(2) 运行测试: 确保测试用例在初次运行时失败,以验证测试用例的有效性。

(3) 实现功能: 编写或优化PostService类中的方法,使测试用例通过。

以下是针对PostService类的各个方法编写的测试用例,然后根据测试用例的反馈对 PostService类进行优化。

1. 第1次优化

(1) 编写测试用例。

创建一个测试类PostServiceTest,并为每个方法编写测试用例。代码如下:

1.png

2.png

3.png

(2) 运行测试。

在初次运行测试用例时,有可能会发现一些方法没有通过测试。这时会根据测试用例的反馈来优化 PostService类的方法。

(3) 实现功能。

如果测试用例没有通过,根据测试用例的反馈进行修改,以确保所有测试用例都通过。

在此案例中,PostService类的方法基本实现了测试用例的需求,但仍然可以通过 TDD 进一步优化代码。例如,在getPostById方法中,可以用更优雅的方式处理Optional,并确保其他方法的逻辑清晰且易于测试。

优化后的 PostService类代码如下:

4.png

5.png

通过这种TDD的方式,确保修改后的代码依然可以通过测试,从而提高了代码的质量和可靠性。

2. 第2次优化

第1次优化成功之后,继续进行优化,在deletePostById方法中检查是否存在对应的postId。

(1) 编写测试用例。

6.png

7.png

8.png

(2) 运行测试。

测试结果显示,testDeletePostById_Success和testDeletePostById_NotFound方法没有通过测试。

(3) 编写代码使测试通过。

10.png

11.png

修改后的代码在执行删除操作之前,通过调用existsById方法验证给定的postId是否存在。这一改动有效防止了针对不存在记录的删除操作,确保了数据的一致性与完整性。

采用测试驱动开发方法,确保了这一优化过程中的每一步都伴随着相应的测试案例,进而保障了代码质量及功能的正确实现。


03、案例总结

测试的价值在于及早发现并修复潜在缺陷,增强代码的稳健性和可维护性,同时它也是编程技能学习的重要组成部分。深入学习测试技术,例如行为驱动开发(BDD)、端到端测试、性能测试等,可以进一步提升测试能力。不断探索和应用这些高级测试方法和框架特性,将为开发工作带来长远的益处。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。