《Java单元测试实战》——简化技巧:Java编程技巧之单元测试用例简化方法(5)

简介: 《Java单元测试实战》——简化技巧:Java编程技巧之单元测试用例简化方法(5)

《Java单元测试实战》——简化技巧:Java编程技巧之单元测试用例简化方法(4) https://developer.aliyun.com/article/1232242?groupCode=java



五、 简化单元测试用例

 

1. 利用直接测试私有方法简化单元测试用例

 

习惯性地,我们通过构造共有方法的测试用例,来覆盖公有方法及其私有方法的所有分支。这种方式没有问题,但有时候显得测试用例比较繁琐。我们可以直接测试私有方法,单独对私有方法进行全覆盖,从而减少对公有方法的测试用例。


被测代码:


image.png

 

原始用例:

image.png

简化用例:

image.png

 2. 利用JUnit的参数化测试简化单元测试用例

 

有时候我们会发现,同一方法的在不同场景下的单元测试,除了加载的数据不同之外,单元测试用例的代码基本完全一致。我们可以这样分析:虽然单元测试用例的场景不一样——执行代码的分支不一样,调用方法方法的顺序、次数、返回值不一样;但是,其调用的依赖方法的数量是完全一致的;所以,最终写出来的单元测试用例的代码也是完全一致的。这时,我们就可以采用JUnit的参数化测试来简化单元测试用例。

 

被测代码:

 

同上一章的测试代码。

 

原始用例:

 

同上一章的原始用例。


简化用例:


image.png


如上简化用例所示:在资源目录testGetUserWithNormal中创建了两个目录vip和notVip,用于存储相同名称的JSON文件userDO.json和userVO.json,但是其文件内容根据场景又有所不同。

 

备注:本案例采用JUnit5.0的参数化测试新特性。

 

后记

 

《走向卓越工程实践》是一本面向集团一线研发工程师/二层组织技术负责人/ TLM/Tech Lead 的实践指南,意在引导集团技术朝着更卓越先进的水平持续优化和演进,以高质量带动高效率,为研发工程师和技术管理者指明从基础迈向卓越工程的道路。这里,填写了一首词《满江红·卓越工程》,谨此献给卓越工程小组。

 

《满江红·卓越工程》

 

夜色朦胧,高楼里、灯如白昼。

揉睡眼,仰天长吼,又熬一宿。

美好生活仍未见,称心工作何时有?

累成狗、秃了少年头,人消瘦。

 

编单测,纠错谬。核代码,查疏漏。

讲方法,打破加班魔咒。

卓越工程提效率,日常实践争优秀。

从此后、阔步向前行,精神抖。

相关文章
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
518 4
|
10月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
608 1
|
11月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
913 0
|
缓存 监控 负载均衡
如何提升 API 性能:来自 Java 和测试开发者的优化建议
本文探讨了如何优化API响应时间,提升用户体验。通过缓存(如Redis/Memcached)、减少数据负载(REST过滤字段或GraphQL精确请求)、负载均衡(Nginx/AWS等工具)、数据压缩(Gzip/Brotli)、限流节流、监控性能(Apipost/New Relic等工具)、升级基础设施、减少第三方依赖、优化数据库查询及采用异步处理等方式,可显著提高API速度。快速响应的API不仅让用户满意,还能增强应用整体性能。
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
3109 8
|
12月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
381 0
|
12月前
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
1338 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。

热门文章

最新文章