《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(11)

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

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



八、 验证依赖方法

 

在单元测试中,验证是确认模拟的依赖方法是否按照预期被调用或未调用的过程。Mockito提供了许多方法来验证依赖方法调用,给我们编写单元测试用例带来了很大的帮助。

 

 

1. 根据参数验证方法调用

 

1) 验证无参数方法调用

image.png

2) 验证指定参数方法调用

image.png

3) 验证匹配参数方法调用

 

在验证依赖方法时,需要自定义匹配参数值,可以使用Mockito参数匹配器的that方法。Mockito提供了booleanThat、intThat、longThat、doubleThat、argThat等方法来进行匹配值。

 

image.png

4)验证任意参数方法调用


在验证依赖方法时,有时候并不关心传入参数的具体值,可以使用Mockito参数匹配器的any方法。Mockito提供了anyInt、anyLong、anyString、anyList、anySet、anyMap、any(Class clazz)等方法来表示任意值。

image.png

5)验证可空参数方法调用


Mockito参数匹配器的any具体方法,并不能够匹配null对象。而Mockito提供一个nullable方法,可以匹配包含null对象的任意对象。此外,Mockito.any()方法也可以用来匹配可空参数。

image.png

6)验证必空参数方法调用

同样,如果要匹配null对象,可以使用isNull方法,或使用eq(null)。

image.png


7) 验证不同参数方法调用

 

Mockito支持按不同的参数分别验证同一方法。

image.png

8)验证可变参数方法调用


对于一些变长度参数方法,可以按实际参数个数进行验证:

image.png

也可以用Mockito.any()进行通用验证

image.png

2.验证方法调用次数

1)验证方法默认调用1次

image.png

2)验证方法从不调用

image.png

3)验证方法调用n次

image.png

4) 验证方法调用至少1次

image.png

5)验证方法调用至少n次

image.png

6)验证方法调用最多1次

image.png

7) 验证方法调用最多n次

image.png

8) 验证方法调用指定n次

Mockito允许按顺序进行验证方法调用,未被验证到的方法调用将不会被标记为已验证。

image.png


9) 验证对象及其方法调用1次

 

用于验证对象及其方法调用1次,如果该对象还有别的方法被调用或者该方法调用了多次,都将导致验证方法调用失败。

image.png

相当于:

image.png




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


相关文章
|
5月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
1885 8
|
6月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
508 1
|
8月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
276 0
|
9月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
281 1
|
5月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
301 1
|
6月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
265 0