其实这个模拟错误有零次互动?

时间:2019-02-12 07:29:15

标签: junit mocking

我正在尝试编写测试用例,但因此错误而卡住了。如何解决此错误?

@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);
    }

1 个答案:

答案 0 :(得分:0)

可能SystemFormBean类没有覆盖equals()。因此,当isDuplicateSystemDetail(systemFormBean)调用时,它具有该类的另一个对象作为参数,该参数与您手动创建的对象不同(默认情况下,Object.equals()比较在您的情况下为假的内存地址) 。

尝试覆盖equals()进行比较SystemFormBean的实际字段,或将“ when”子句重写为
systemDao.isDuplicateSystemDetail(Mockito.any(SystemFormBean.class))