Функция в EasyMock, которой нет в Mockito - PullRequest
2 голосов
/ 29 февраля 2012

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

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

1 Ответ

1 голос
/ 01 марта 2012

Одна функция, которая приходит на ум, - это поддержка неявно проверенных ожиданий, которых у 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") во втором тесте.Mockito, возможно, мог бы добавить метод times(n), который будет использоваться вместе с вызовами к thenReturn(...) (который есть у EasyMock).Это позволит избежать дублирования кода в таких ситуациях.

...