Я пытаюсь добавить Powermock в свое приложение, которое использует Mockito.
Это то, что у меня есть в моей сборке Gradle:
compile("junit:junit:4.12"){force = true}
compile("org.powermock:powermock-api-mockito-common:1.7.0")
compile("org.powermock:powermock-api-mockito2:1.7.0")
compile("org.powermock:powermock-api-support:1.7.0")
compile("org.powermock:powermock-core:1.7.0")
compile("org.powermock:powermock-module-junit4:1.7.0")
compile("org.powermock:powermock-module-junit4-common:1.7.0")
compile("org.powermock:powermock-reflect:1.7.0")
compile("org.javassist:javassist:3.12.0.GA")
compile("org.mockito:mockito-core:2.8.9")
Это тестовый файл, который у меня есть ...
@RunWith(PowerMockRunner.class)
@PrepareForTest(XMLTransaction.class)
public class CloseSummaryOrCloseTrailerResponseTest {
public final static String URL="WL_APPSERVER";
private XMLTransaction xmlTransaction;
@Before
public void initMocks() throws Exception {
xmlTransaction = PowerMockito.spy(new XMLTransaction(URL));
PowerMockito.doNothing().when(xmlTransaction, "initialize");
}
@Test
public void whenCloseSummaryResponseNoErrorExpectCorrectXmlMsgProduced ()
{
...test code here
}
}
Я получаю ошибку:
java.lang.NoClassDefFoundError: org / mockito / exceptions / Reporter at
sun.reflect.GeneratedSerializationConstructorAccessor8.newInstance (Неизвестно
Источник) в
java.lang.reflect.Constructor.newInstance (Constructor.java:423) в
org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance (SunReflectionFactoryInstantiator.java:48)
в
org.powermock.reflect.internal.WhiteboxImpl.newInstance (WhiteboxImpl.java:251)
в org.powermock.reflect.Whitebox.newInstance (Whitebox.java:139)
Класс Reporter должен содержаться в ядре mockito.
Какие дополнительные банки мне нужны?
Я проверил совместимость Mockito и Powermock на этом сайте:
https://github.com/powermock/powermock/wiki/Mockito#supported-versions
Но, похоже, мне не хватает другой банки.
UPDATE
Проверял этот ответ, но он не решил мою проблему.
Я изменил
compile("org.powermock:powermock-api-mockito2:1.7.0")
до
compile("org.powermock:powermock-api-mockito2:1.7.0RC2")
Теперь я получаю другую ошибку:
java.lang.IllegalStateException: внутренняя ошибка API расширения:
org.powermock.api.extension.proxyframework.ProxyFrameworkImpl могла
не находиться в classpath. в
org.powermock.reflect.proxyframework.ProxyFrameworkHelper.register (ProxyFrameworkHelper.java:35)
Какая банка нужна?