Opracowałem aplikację w Javie i próbuję tworzyć testy jednostkowe za pomocą Powermockito (powinienem dodać, że jestem nowy w testowaniu jednostkowym).Powermockito doNothing dla metody z argumentami
Mam klasy o nazwie zasobu, który ma metodę statyczną o nazwie readResources:
public static void readResources(ResourcesElement resourcesElement);
ResourcesElement również zakodowany przeze mnie. Podczas testowania chcę utworzyć własny zasób, więc chcę, aby powyższa metoda nie działała. że próbuje przy użyciu tego kodu:
PowerMockito.spy(Resource.class);
PowerMockito.doNothing().when(Resource.class, "readResources", Matchers.any(ResourcesElement.class));
Test jednostki wyjątek to wykryty tutaj niewykończone Stubbing::
org.mockito.exceptions.misusing.UnfinishedStubbingException -> w org.powermock .api.mockito.internal.PowerMockitoCore.doAnswer (PowerMockitoCore.java:36)
Powermockito sugerują również, że należy używać thenReturn lub thenThrow po kiedy, ale wydaje się, że metoda "when" zwraca pustkę, gdy zostanie wywołana po doNothing (co jest logiczne). Gdy próbuję:
PowerMockito.when(Resource.class, "readResources", Matchers.any(ResourcesElement.class)).....
DoNothing nie jest opcją, po kiedy.
Udało mi się stworzyć metody bez argumentów, aby nic nie robić, używając wersji 2 argumentów metody. Na przykład:
PowerMockito.doNothing().when(Moduler.class, "startProcessing");
To działa (startProcessing nie przyjmuje żadnych argumentów).
Ale jak mogę stworzyć metody, które podejmują argumenty, aby nie robić nic z Powermockito?
Dzięki, to było to, zapomniałem dodać adnotacji przy @PrepareForTest (mój drugi przykład działał, ponieważ tam pamiętałem, aby go opisywać). – Anakin001
Nie ma problemu, przydarzyło mi się kilka razy i straciłem kilka godzin próbując to rozgryźć – Morfic
@ Anakin001: Co jeśli metoda ** readResources ** jest w tym przypadku prywatna i niestatyczna? –