NoClassDefFoundError - org/mockito/exceptions/Reporter при использовании Mockito и PowerMock

Я пытаюсь добавить 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 в 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-core. Какие дополнительные банки мне нужны? Я проверил совместимость Mockito и Powermock на этом сайте: https://github.com/powermock/powermock/wiki/Mockito#supported-versions

Но, кажется, мне не хватает какой-то другой банки.

ОБНОВЛЕНИЕ Проверил этот ответ, но он не решил мою проблему. я изменил

compile("org.powermock:powermock-api-mockito2:1.7.0")

to

compile("org.powermock:powermock-api-mockito2:1.7.0RC2")

Теперь я получаю другую ошибку:

java.lang.IllegalStateException: внутренняя ошибка API расширения: org.powermock.api.extension.proxyframework.ProxyFrameworkImpl не может быть расположен в пути к классам. в org.powermock.reflect.proxyframework.ProxyFrameworkHelper.register(ProxyFrameworkHelper.java:35)

Какая баночка для этого нужна?


person Gloria Santin    schedule 19.03.2019    source источник
comment
это может помочь вам stackoverflow.com/questions/43940857/   -  person Sagar P. Ghagare    schedule 19.03.2019
comment
Возможный дубликат после обновления до 2.7 ClassNotFoundException: org .mockito.exceptions.Reporter при запуске теста   -  person Sagar P. Ghagare    schedule 19.03.2019


Ответы (1)


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

person Gloria Santin    schedule 19.03.2019
comment
Это не работает для меня. есть ли другой способ обойти это. Я использую maven и весеннюю загрузку - person Mahender Reddy Yasa; 09.12.2019