Mockito.when返回的list长度为0问题解决方法

今天玩Mockito.when遇见一个问题Mockito.when返回的list长度为0;上代码

java 复制代码
ArrayList<Org> childDepts = new ArrayList<>();
        Org org = new Org();
        org.setDeptId("1");
        org.setDeptName("1");
        childDepts.add(org);
Mockito.when(orgMapper.selectOrgList(org).thenReturn(childDepts);

业务实现代码

java 复制代码
List<Org> list= orgMapper.selectOrgList(queryChild);
//发现该代码返回的list长度为0

此时应该把我们的模拟代码修改成这样

java 复制代码
Mockito.when(orgMapper.selectOrgList(Mockito.any(Org.class))).thenReturn(childDepts);

分析原因

这是因为虽然你在单测中已经mock数据,但是mock数据的参数与在实际单测执行时大参数不是一个对象

相关推荐
笨拙的老猴子14 小时前
JDK8 / JDK11 / JDK17 / JDK21 核心新特性对比,简单总结
java·jdk
江湖中的阿龙14 小时前
【无标题】
java·开发语言
JavaEdge在掘金14 小时前
06-LangChain Tool 加载与使用指南:预制工具、SerpAPI、edge-tts、GraphQL
java
NettyBoy14 小时前
生产 YoungGC 导致的系统化卡顿
java·jvm
聚美智数14 小时前
食物热量搜索与详情双接口接入实战,轻量化生活服务 API 落地
java·开发语言·生活
Ting-yu14 小时前
Spring AI Alibaba零基础速成(2) ---- Ollama安装与使用
java·后端·spring·ai
砍材农夫14 小时前
物联网 基于netty构建mqtt服务协议支持
java·物联网·struts·netty
凤凰院凶涛QAQ14 小时前
《C++转Java快速入手系列》String篇:在C++里拼字符串像搬砖,在Java里拼字符串像玩乐高 —— 还是带垃圾回收的那种。
java·开发语言·c++
会编程的吕洞宾14 小时前
Spring_Boot_3_3_的___Transactional__
java·后端·spring