Я разработал приложение на Java, и я пытаюсь создать модульные тесты с использованием Powermockito (я должен добавить, что я новичок в модульном тестировании).
У меня есть класс Resource, который имеет статический метод readResources:
public static void readResources(ResourcesElement resourcesElement);
ResourcesElement также кодируется мной. При тестировании я хочу создать свой собственный ресурс, поэтому я хочу, чтобы вышеупомянутый метод ничего не делал. Я пробовал использовать этот код:
PowerMockito.spy(Resource.class);
PowerMockito.doNothing().when(Resource.class, "readResources", Matchers.any(ResourcesElement.class));
unit test выдает исключение:
org.mockito.exceptions.misusing.UnfinishedStubbingException: Обнаружено следующее: → at org.powermock.api.mockito.internal.PowerMockitoCore.doAnswer(PowerMockitoCore.java:36)
Powermockito также предполагает, что я должен использовать thenReturn или thenThrow после того, когда, но кажется, что метод "когда" возвращает void, когда он вызывается после doNothing (что логично). Если я попробую:
PowerMockito.when(Resource.class, "readResources", Matchers.any(ResourcesElement.class)).....
doNothing не является опцией после того, когда.
Мне удалось сделать методы без аргументов, чтобы ничего не делать, используя версию аргумента 2 аргумента. Например:
PowerMockito.doNothing().when(Moduler.class, "startProcessing");
Это работает (startProcessing не принимает никаких аргументов).
Но как я могу создавать методы, которые принимают аргументы, чтобы ничего не делать с Powermockito?