Есть ли эквивалентный Mockito способ ожидать вызова конструктора, например PowerMock.expectNew? - PullRequest
5 голосов
/ 14 сентября 2011

Если нет, существует ли он на EasyMock?

Спасибо.

1 Ответ

9 голосов
/ 14 сентября 2011

PowerMock предназначен для расширения как EasyMock, так и Mockito.Из уст в уста: «PowerMock - это платформа, которая расширяет другие фиктивные библиотеки, такие как EasyMock, с более мощными возможностями».

В любом случае, не существует эквивалента EasyMock для ожидаемого нового, и в Mockito его тоже нет - это именно та дыра, которую PowerMock пытается заполнить.При этом PowerMock вполне способен сделать это с Mockito.Вот пример из документации :

Как смоделировать строительство новых объектов

Использовать PowerMockito.whenNew, например,

whenNew(MyClass.class).withNoArguments().thenThrow(new
IOException("error message")); 

Обратите внимание, что для тестирования необходимо подготовить класс, создающий новый экземпляр MyClass, а не сам MyClass.Например, если класс, создающий новый MyClass (), называется X, то вам нужно будет сделать @PrepareForTest (X.class), чтобы когда whenNew работало.

Как проверить построение новых объектов Используйте PowerMockito.verifyNew, например,

verifyNew(MyClass.class).withNoArguments();
...