PowerMock с Mockito и JUnit для имитации методов класса, вызываемых в функции, дает ArrayStoreException - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь использовать PowerMock с Mockito и JUnit для тестирования моего проекта, который включает методы, вызывающие методы статического класса внутри.

В моем файле gradle.bulild у меня есть следующие зависимости:

testCompile group: 'org.mockito', name: 'mockito-core', version: '2.8.9+'
testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.2'
testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '2.0.2'

В моем тестовом классе у меня есть следующее:

import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassWithStaticMethod.class})

public class MyTest {
  @Test
  public void testMethod() {
    PowerMockito.mockStatic(ClassWithStaticMethod.class);

    //my test logic
  }
}

Когда я запускаю тестовый класс, я получаю следующие ошибки:

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy в sun.reflect.annotation.AnnotationParser.parseClassArray (AnnotationParser.java:724) в sun.reflect.annotation.AnnotationParser.parseArray (AnnotationParser.java:ar.Parser.Parser.Parser.Parser.Parser.Parser. .java: 355) в sun.reflect.annotation.AnnotationParser.parseAnnotation2 (AnnotationParser.java:286) в sun.reflect.annotation.AnnotationParser.parseAnnotations2 (AnnotationParser.java:120) в sun.renarnoteAnnotationParser.java:72) в java.lang.Class.createAnnotationData (Класс.java: 3521) в java.lang.Class.annotationData (Class.java:3510) в java.lang.Class.getAnnotations (Class.java:3446) в org.junit.runner.Description.createSuiteDescription (Description.java:124) по адресу org.junit.internal.runners.ErrorReportingRunner.getDescription (ErrorReportingRunner.java:28) по адресу org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest (JUnit_jj.jpg).internal.junit4.runner. .runner.RemoteTestRunner.runTests (RemoteTestRunner.java:525) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:763) в org.eclipemun.run (RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:209)

Является ли проблема, связанная с зависимостьюнесовместимости или что-то должно быть исправлено в коде?

...