
问题解决41:单元测试 verify 使用的时候,验证一个函数执行了多少次,验证出现参数不一致情况
发布日期:2021-05-19 23:11:34
浏览次数:11
分类:精选文章
本文共 1073 字,大约阅读时间需要 3 分钟。
解决verify
测试失败的问题,尤其是在使用了重写hashCode
和equals
方法后,现在按照以下步骤操作:
重写与修复hashCode
和equals
方法:确保在改动对象比较逻辑后,equals
和hashCode
能够正确地反映对象内容的相等性和唯一性。具体修改如下:
@Overridepublic boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof PurchaseInputOrderDTO)) return false; PurchaseInputOrderDTO other = (PurchaseInputOrderDTO) obj; return this.purchaseNumber != null ? this.purchaseNumber.equals(other.purchaseNumber) : thisambioUUID != null ? thisambioUUID.equals(other aylıkDni) : false;}@Overridepublic int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + (purchaseNumber == null ? 0 : prime * purchaseNumber.hashCode()); hashCode = prime * hashCode + (amigoUUID == null ? 0 : prime * amigoUUID.hashCode()); return hashCode;}
修改测试验证代码:将原本使用具体对象验证的语句,替换为使用参数不敏感的验证方法:
verify(wmsService, times(1)).createPurchaseInputOrder(any(PurchaseInputOrderDTO.class));
这样不论实际传递的PurchaseInputOrderDTO
对象是什么,验证都会通过,只关注方法被调用次数是否正确。
通过这样处理,测试不再依赖于具体的对象实例参数,而确认了WmsService
的createPurchaseInputOrder
方法恰好被调了一次,从而解决了比较失败的问题。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月09日 17时05分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Vue路由跳转如何传递一个对象过去?
2019-03-17
sockjs-node/info?t=1462183700002 报错解决方案
2019-03-17
解决VS Code保存时候自动格式化
2019-03-17
SAP 修改物料价格那些事
2019-03-17
FI 替代相关 OSS Note 要点记录
2019-03-17
二十八、进阶之history模式及路由守卫
2019-03-17
Problem K: 三角形数
2019-03-17
蓝桥杯---试题 算法提高 欧拉函数(数学)
2019-03-17
Math中的小算法
2019-03-17
自定义Seekbar样式
2019-03-17
Hidden treasures of the Rust ecosystem
2019-03-17
Rust异步浅谈
2019-03-17
【Rust每周一库】sled - 嵌入式数据库
2019-03-17
man工具
2019-03-17
【网络加速】TensorRT7-开发指南中文_Plus版【1】
2019-03-17
SaltStack about The Top File 使用知识介绍
2019-03-17
网络协议和支持(一)、uuid模块
2019-03-17