《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


相关文章
|
4月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
3月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
7月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
187 10
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
12月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
366 35
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
417 5
软件测试用例设计之微信群抢红包经典用例
|
测试技术 数据安全/隐私保护
北邮人论坛登录页面测试用例
北邮人论坛登录页面测试用例
269 1
|
前端开发 关系型数据库 测试技术
django集成pytest进行自动化单元测试实战
在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试框架,Pytest提供了更为丰富和强大的测试功能。本文通过一个实际项目ishareblog介绍django集成pytest进行自动化单元测试实战。
296 3
django集成pytest进行自动化单元测试实战
|
人工智能 测试技术 Python
基于 LangChain 的自动化测试用例的生成与执行
本章节详细介绍了如何利用人工智能技术自动化完成Web、App及接口测试用例的生成与执行过程,避免了手动粘贴和调整测试用例的繁琐操作。通过封装工具包与Agent,不仅提升了测试效率,还实现了从生成到执行的一体化流程。应用价值在于显著节省时间并提高测试自动化水平。
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。

热门文章

最新文章