Есть ли что-то вроде "действительно хорошей насмешки"? - PullRequest
0 голосов
/ 17 мая 2019

Хорошие макеты в EasyMock и Mockito - это хорошая вещь для начала, если вы не хотите определять поведение для всего и если вы не хотите ограничивать вызовы для этого макета.

Но для меня ониесть один большой недостаток: они всегда возвращают null, если тип возвращаемого значения метода Object или что-то наследуемое от Object.

Мне интересно, есть ли что-то в одной или обеих структурахкоторый возвращает Optional.empty() для методов, которые возвращают Optional<?> или Collections.emptyList() для методов, которые возвращают List<?> и так далее ...

Я пока не смог найти ничего подобного.

1 Ответ

1 голос
/ 17 мая 2019

Текущие версии для Mockito по умолчанию возвращают пустые списки и дополнительные.AFAIK это была новая функция версии 2.0 (по крайней мере, Optionals).Следующий тест пройден успешно с Mockito 2.27.0.

class MockitoTest
    static class SomeType {
        Optional<String> headline;
        List<String> texts;

        Optional<String> getHeadline() {
            return headline;
        }

        List<String> getTexts() {
            return texts;
        }
    }

    @Test
    void mock_returns_empty_List_by_default() {
        SomeType o = mock(SomeType.class);

        List<String> texts = o.getTexts();

        assertEquals(emptyList(), texts);
    }

    @Test
    void mock_returns_empty_Optional_by_default() {
        SomeType o = mock(SomeType.class);

        Optional<String> headline = o.getHeadline();

        assertFalse(headline.isPresent());
    }
}
...