博客
关于我
问题解决41:单元测试 verify 使用的时候,验证一个函数执行了多少次,验证出现参数不一致情况
阅读量:667 次
发布时间:2019-03-16

本文共 1073 字,大约阅读时间需要 3 分钟。

解决verify测试失败的问题,尤其是在使用了重写hashCodeequals方法后,现在按照以下步骤操作:

  • 重写与修复hashCodeequals方法:确保在改动对象比较逻辑后,equalshashCode能够正确地反映对象内容的相等性和唯一性。具体修改如下:

    @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对象是什么,验证都会通过,只关注方法被调用次数是否正确。

  • 通过这样处理,测试不再依赖于具体的对象实例参数,而确认了WmsServicecreatePurchaseInputOrder方法恰好被调了一次,从而解决了比较失败的问题。

    转载地址:http://ykeqz.baihongyu.com/

    你可能感兴趣的文章
    51单片机的复位电路
    查看>>
    OpenCV-Python图像梯度 Scharr算子
    查看>>
    java 原型模式(大话设计模式)
    查看>>
    java 中介者模式(大话设计模式)
    查看>>
    微机原理 6-计算机中常用的数制
    查看>>
    2.5 实际电源的两种模型及其等效变换
    查看>>
    MCS51 程序存储器(ROM)
    查看>>
    web访问ejb测试 详解
    查看>>
    window系统下安装使用curl命令工具
    查看>>
    假如计算机是中国人发明的,那代码应该这么写
    查看>>
    神器 Codelf !
    查看>>
    趣图:会算法和不会算法的区别
    查看>>
    一行代码就能解决的智力算法题
    查看>>
    区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
    查看>>
    问题解决41:单元测试 verify 使用的时候,验证一个函数执行了多少次,验证出现参数不一致情况
    查看>>
    问题解决28:微信网页授权出现redicet_uri 参数错误
    查看>>
    App的启动过程(2)framework侧-恢复最上层的Activity
    查看>>
    LeakCanary 中文使用说明
    查看>>
    反转链表,(5)
    查看>>
    Camera (api1)的打开过程
    查看>>