今天玩Mockito.when遇见一个问题Mockito.when返回的list长度为0;上代码
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);
业务实现代码
List<Org> list= orgMapper.selectOrgList(queryChild);
//发现该代码返回的list长度为0
此时应该把我们的模拟代码修改成这样
Mockito.when(orgMapper.selectOrgList(Mockito.any(Org.class))).thenReturn(childDepts);
分析原因
这是因为虽然你在单测中已经mock数据,但是mock数据的参数与在实际单测执行时大参数不是一个对象