Usuwam Powermock z projektu, nad którym obecnie pracuję, więc próbuję przepisać niektóre istniejące testy jednostkowe tylko z Mockito (mockito-core-2.2.28).Mock ostatniej klasy z Mockito 2
Kiedy wykonać test, mam następujący błąd:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.ExternalpackagePath.Externalclass
Mockito cannot mock/spy because :
- final class
Wiem, że to pytanie zostało już zadane (How to mock a final class with mockito, Mock objects calling final classes static methods with Mockito), ale nie mogę znaleźć odpowiedzi szukam dla.
Oto fragment mojego kodu:
public class MyClassToTest extends TestCase {
private MyClass myClass;
@Mock private Externalclass ext; // This class is final, I would like to mock it
@Override
protected void setUp() throws Exception {
MockitoAnnotations.initMocks(this); // <<<< The exception is thrown here
ext = Mockito.mock(Externalclass.class);
}
}
Jak wspomniano w dokumentacji Mockito (https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2, §Mock unmockable), dodałem plik org.mockito.plugins.MockMaker. Jest to drzewo mojego projektu:
- projektu
- src
- com.packagePath.myPackage
- myClass
- com.packagePath.myPackage
- testowe
- com.packagePath.myPackage
- myClassToTest
- zasoby
- Mockito-extensions
- org.mockito.plugins.MockMaker
- Mockito-extensions
- com.packagePath.myPackage
- src
ja też próbuje umieścić w katalogu „Zasoby” w „src”, w podkatalogu o nazwie „test”, ale wynik jest wciąż ten sam.
Myślałem, że kpina z finału była możliwa dzięki Mockito v2. Czy ktoś ma pojęcie o tym, czego tu brakuje?
Dzięki!
Plik musi mieć nazwę org.mockito.plugins.MockMaker, a nie org.mockito.plugins. –
Woops, przepraszam, zapomniałem końca linii, kiedy zrobiłem kopię/przeszłość, nazwa pliku jest dobrze napisana w moim przypadku. Mój zły! Edytowałem opis tekstowy. – Ptiseb