Функция в 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). Это позволит избежать дублирования кода в подобных ситуациях.