我正在尝试编写测试用例,但因此错误而卡住了。如何解决此错误?
@Override
public boolean isDuplicateSystemDetail(SystemFormBean systemFormBean){
List<BrmSystem> list = systemDao.isDuplicateSystemDetail(systemFormBean);
if(CollectionUtils.isNotEmpty(list)){
return true;
}else{
return false;
}
}
---------------------------------------------------------------------------
@Test
public void isDuplicateSystemDetail_Should_Return_True(){
List<BrmSystem> list = new ArrayList<BrmSystem>();
BrmSystem brmSystem = new BrmSystem();
SystemFormBean systemFormBean = new SystemFormBean();
brmSystem.setSystemName("Test");
list.add(brmSystem);
when(systemDao.isDuplicateSystemDetail(systemFormBean)).thenReturn(list);
}
答案 0 :(得分:0)
可能SystemFormBean类没有覆盖equals()。因此,当isDuplicateSystemDetail(systemFormBean)调用时,它具有该类的另一个对象作为参数,该参数与您手动创建的对象不同(默认情况下,Object.equals()比较在您的情况下为假的内存地址) 。
尝试覆盖equals()进行比较SystemFormBean的实际字段,或将“ when”子句重写为
systemDao.isDuplicateSystemDetail(Mockito.any(SystemFormBean.class))