NoClassDefFoundError - org / mockito / exceptions / Reporter при использовании Mockito и PowerMock - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь добавить 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)

Какая банка нужна?

1 Ответ

0 голосов
/ 19 марта 2019

Что сработало для меня ... было то, что я удалил все jar-файлы powermock в своей папке lib, а затем использовал приведенный выше код gradle и перестроил.Я смог выполнить тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...