На самом деле было нулевое взаимодействие с этой ложной ошибкой? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь написать тестовый пример, но застрял с этой ошибкой.Как исправить эту ошибку?

@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 голосов
/ 20 февраля 2019

Вероятно, класс SystemFormBean не переопределяет equals ().Поэтому, когда вызывается isDuplicateSystemDetail (systemFormBean), он имеет другой объект этого класса в качестве параметра, который отличается от того, который вы создали вручную (по умолчанию Object.equals () сравнивает адреса памяти, которые в вашем случае были бы ложными),

Попробуйте переопределить equals (), чтобы сравнить, например, с фактическими полями SystemFormBean, или переписать выражение «когда» как
systemDao.isDuplicateSystemDetail (Mockito.any (SystemFormBean.class))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...