Функция в EasyMock, которой нет в Mockito

Есть ли какая-либо полезная функция в EasyMock, которой нет или она не обрабатывается должным образом (по сравнению с EasyMock) в Mockito?

Я хотел бы знать о какой-то функции, например, для. Mockito поддерживает простую инъекцию всех макетов в тестируемый класс с помощью @ InjectMocks, что не так в EasyMock (из коробки). Аналогично, есть ли в EasyMock какие-либо функции, которые либо отсутствуют, либо не обрабатываются так же хорошо, как в EasyMock?

1 ответ

Решение

Одна особенность, которая приходит на ум, - это поддержка неявно проверенных ожиданий, которых у Mockito нет:

@Test
public void usingEasyMock()
{
    Collaborator mock = createMock(Collaborator.class);

    expect(mock.registerXyz("xyz")).andReturn(true);
    replay(mock);

    new ClassUnderTest().doSomething(mock);

    verify(mock);
}


@Test
public void usingMockito()
{
    Collaborator mock = mock(Collaborator.class);

    when(mock.registerXyz("xyz")).thenReturn(true);

    new ClassUnderTest().doSomething(mock);

    verify(mock).registerXyz("xyz");
}

Обратите внимание на дубликат вызова registerXyz("xyz") во втором тесте. Мокито мог бы, возможно, добавить times(n) метод, который будет использоваться вместе с вызовами thenReturn(...) (который есть у EasyMock). Это позволит избежать дублирования кода в подобных ситуациях.

Другие вопросы по тегам