Java单元测试实践-05.Mockito、PowerMock基本功能使用

本文深入探讨Java单元测试,对比分析Mockito与PowerMock框架特性,详细介绍配置与使用方法,涵盖静态方法、私有方法等复杂场景的Mock策略,提供丰富的示例与版本兼容指导。

Java单元测试实践-00.目录(9万多字文档+700多测试示例)
https://blog.youkuaiyun.com/a82514921/article/details/107969340

1. Mockito与PowerMock的功能

以下针对使用Mockito与PowerMock作为单元测试Mock框架进行说明。

1.1. Mockito

参考 https://github.com/mockito/mockito/wiki/FAQ 。

Mockito是一个Java的Mock框架。支持对类或接口进行Mock,不支持对静态方法、私有方法、构造函数等进行Mock。

1.2. PowerMock

参考 https://github.com/powermock/powermock/blob/release/2.x/README.md 。

PowerMock是一个Mock框架,以更强大的功能扩展了其他Mock库。PowerMock使用自定义的类加载器和字节码操作来对静态方法、构造函数、final类和方法、私有方法等进行Mock。PowerMock旨在通过少量方法和注解扩展现有的API,以启用额外的功能。目前,PowerMock支持EasyMock和Mockito。

PowerMock示例可查看: https://github.com/powermock/powermock-examples-maven 。

2. 添加引用

2.1. 引用Mockito

参考“Declaring mockito dependency”( https://github.com/mockito/mockito/wiki/Declaring-mockito-dependency )。

可通过以下方式引用Mockito:

"org.mockito:mockito-core:1.+"

Mockito版本已更新至2.*与3.*,可使用新版本。

2.2. 引用PowerMock

参考“Mockito 2 Maven”( https://github.com/powermock/powermock/wiki/Mockito-2-Maven )。

对于使用Mockito 2.x,JUnit 4.4及以上版本时,通过以下方式引用PowerMock:

"org.powermock:powermock-module-junit4:2.0.4",
"org.powermock:powermock-api-mockito2:2.0.4"

3. PowerMock对Mockito的支持版本

参考“Supported versions”( https://github.com/powermock/powermock/wiki/Mockito#supported-versions )。

PowerMock的2.0.0及更高版本支持Mockito 2。具体的版本支持关系可查看对应的表格。

4. 基本配置

在使用PowerMock时,通常会使用以下公共配置(@ContextConfiguration是spring-test的配置):

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@PowerMockIgnore({"javax.management.*", "javax.net.ssl.*", "javax.crypto.*", "javax.security.*", "javax.script.*"})

4.1. @RunWith(PowerMockRunner.class)

参考“Introduction”( https://github.com/powermock/powermock/wiki/mockito#introduction )。

PowerMock提供了一个名为“PowerMockito”的类,用于创建模拟/对象/类并启动验证和期望。

所有的用法都需要在类级别使用@RunWith(PowerMockRunner.class)和@PrepareForTest注解。

4.2. @PrepareForTest注解

参考“Annotation Type PrepareForTest”( https://javadoc.io/doc/org.powermock/powermock-core/latest/org/powermock/core/classloader/annotations/PrepareForTest.html )。

@PrepareForTest注解告诉PowerMock需要准备哪些类进行测试。需要使用此注解定义的类通常是需要操作字节码的类。包括final类,具有final、private、static或native方法的类,以及应在实例化时返回模拟对象的类。

@PrepareForTest注解可以添加在测试类或单个测试方法上。如果设置在一个类上,则该测试类中的所有测试方法都将由PowerMock处理,以实现可测试性。如果需要覆盖单个方法的行为,只需在特定的测试方法上设置@PrepareForTest注解。例如,在测试方法f1()中修改类C但在测试方法f2()中希望保持C不变的情况下,可以在方法f2()上设置一个@PrepareForTest注解,并从value()列表中排除类C。

有时测试时需要使用@PrepareForTest注解对内部类进行准备,可以通过提供内部类的完整名称来完成,该名称应被添加到fullyQualifiedNames()列表中。

还可以使用通配符准备整个程序包以进行测试,示例如下:

@PrepareForTest(fullyQualifiedNames = "com.mypackage.*")

@PrepareForTest注解可以添加在测试类,或测试类的超类中,子类与超类中的配置不会相互覆盖。

例如在子类中通过@PrepareForTest注解指定了A.class,在超类中指定了B.class,则A.class与B.class均会被@PrepareForTest注解处理。

可参考示例TestPrepareForTestChild、TestPrepareForTestParent类。

4.3. @PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)

参考“JUnit_Delegating_Runner”( https://github.com/powermock/powermock/wiki/junit_delegating_runner )。

使用@PowerMockRunnerDelegate注解,从1.6.0版开始,PowerMock支持将测试执行委托给另一个JUnit运行程序,而无需使用JUnit规则。这会将实际的测试执行留给选择的其他runner。例如,测试可以委托给“SpringJUnit4ClassRunner”,“Parameterized”或“Enclosed”等runner。

4.4. @PowerMockIgnore

参考“Global @PowerMockIgnore”( https://github.com/powermock/powermock/wiki/PowerMock-Configuration#global-powermockignore )。

默认情况下,PowerMock使用其MockClassLoader加载所有类。该类加载器加载并修改了所有类,除了以下情况:

  • 系统类。它们被延期到系统类加载器
  • 位于指定为忽略的程序包中的类

可以使用@PowerMockIgnore注解指定需要忽略的包,避免被PowerMock加载。

例如在调用加解密相关代码时,需要通过@PowerMockIgnore({“javax.crypto.*”})忽略上述包,否则会出现以下异常( 使用RSA私钥加密 ):

java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi

在调用HTTPS相关代码时,需要通过@PowerMockIgnore({“javax.security.*”})忽略上述包,否则会出现以下异常:

java.lang.LinkageError: loader constraint violation: loader (instance of org/powermock/core/classloader/javassist/JavassistMockClassLoader) previously initiated loading for a different type with name "javax/security/auth/x500/X500Principal"

若不忽略“javax.script.*”对应的包,在执行单元测试时可能会出现以下日志:

ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider jdk.nashorn.api.scripting.NashornScriptEngineFactory not a subtype

5. Mock框架依赖组件、版本差别等

5.1. 依赖组件的影响

5.1.1. javassist

当在项目中添加groupId为“javassist”的javassist依赖时,会导致单元测试程序无法正常启动。

例如添加对“javassist:javassist:3.12.1.GA”的依赖,在启动单元测试程序时会出现以下异常:

java.lang.NoSuchMethodError: javassist.CtClass.getDeclaredClasses()[Ljavassist/CtClass;

at org.powermock.core.transformers.javassist.ConstructorsMockTransformer.transform(ConstructorsMockTransformer.java:50)

查看项目依赖的组件,同时依赖了“org.javassist:javassist:3.x.x-GA”与“javassist:javassist:3.12.1.GA”,前者由“org.powermock:powermock-core:2.x.x”间接依赖。

javassist从“3.12.1.GA”之后的版本“3.13.0-GA”开始,groupId由“javassist”变为“org.javassist”。

去除项目中对“javassist:javassist”的依赖后,单元测试程序启动正常。

5.2. Mockito 2与Mockito 1版本的区别

在 https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#incompatible-changes-with-110 中,介绍了Mockito 2与Mockito 1.10版本不兼容的内容,其中常用的功能如下:

  • InvocationOnMock

在Mockito 1中,在Answer中使用的InvocationOnMock接口的实现类为InvocationImpl类,获取单个参数的方法为getArgumentAt();

在Mockito 2及以上版本中,InvocationOnMock接口的实现类为InterceptedInvocation类,获取单个参数的方法为getArgument()。

可参考示例TestCommonUtil类的getMockArg()方法,针对以上方法进行了兼容处理。

  • Mockito.any…()等方法是否支持null

对于Mockito.any…()及Mockito.any(SomeType.class)方法,在Mockito 1中支持null,在Mockito 2及以上版本中不支持null。

  • Mock/Spy对象的代理类名标志

Mock/Spy对象的代理类名标志,在Mockito 1中示例如下:

$$EnhancerByMockitoWithCGLIB$$96437470

在Mockito 2及以上版本中示例如下:

$MockitoMock$1151489917
  • Matchers/ArgumentMatcher类

在Mockito 1中,Mockito类继承自Matchers类;matches方法声明为“public abstract boolean matches(Object argument)”,在Matchers类中;isNotNull方法声明为“public static Object isNotNull()”;

在Mockito 2及以上版本中,Mockito类不继承自Matchers类,与Matchers类均继承自ArgumentMatchers类;matches方法声明为“public static String matches(Pattern pattern)”或“public static String matches(String regex)”,在ArgumentMatchers类中;isNotNull方法声明为“public static <T> T isNotNull()”。

5.3. PowerMock不同版本的区别

  • 需要添加的依赖组件不同

当使用Mockito 1版本时,需要添加的PowerMock依赖为“org.powermock:powermock-api-mockito”;当使用Mockito 2及以上版本时,需要添加的依赖为“org.powermock:powermock-api-mockito2”。

6. Mock与Stub

参考“Mocks Aren’t Stubs”( https://martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs )。Mock是用期望进行预编程的对象,这些对象构成了期望接收的调用的规范。Stub提供对测试过程中进行的调用的固定答复,通常不会对测试编程之外的内容进行响应。

参考“2. How about some stubbing?”( https://static.javadoc.io/org.mockito/mockito-core/latest/org/mockito/Mockito.html#stubbing )。Mock操作对应Mockito.mock()方法,Stub操作对应Mockito.when().thenReturn()/thenThrow()等方法。当方法被Stub后,将始终返回Stub的值,无论被调用多少次。

D:\software\Java\jdk1.8.0_451\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.7\lib\idea_rt.jar=7917:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.7\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.7\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.7\plugins\junit\lib\junit5-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.7\plugins\junit\lib\junit-rt.jar;D:\software\Java\jdk1.8.0_451\jre\lib\charsets.jar;D:\software\Java\jdk1.8.0_451\jre\lib\deploy.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\access-bridge-64.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\cldrdata.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\dnsns.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\jaccess.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\localedata.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\nashorn.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\sunec.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\sunjce_provider.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\sunmscapi.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\sunpkcs11.jar;D:\software\Java\jdk1.8.0_451\jre\lib\ext\zipfs.jar;D:\software\Java\jdk1.8.0_451\jre\lib\javaws.jar;D:\software\Java\jdk1.8.0_451\jre\lib\jce.jar;D:\software\Java\jdk1.8.0_451\jre\lib\jfr.jar;D:\software\Java\jdk1.8.0_451\jre\lib\jsse.jar;D:\software\Java\jdk1.8.0_451\jre\lib\management-agent.jar;D:\software\Java\jdk1.8.0_451\jre\lib\plugin.jar;D:\software\Java\jdk1.8.0_451\jre\lib\resources.jar;D:\software\Java\jdk1.8.0_451\jre\lib\rt.jar;D:\workspace\git_localrepo\access-control\person\person-core\target\test-classes;D:\workspace\git_localrepo\access-control\person\person-core\target\classes;D:\workspace\git_localrepo\access-control\person\person-api\target\classes;D:\workspace\git_localrepo\access-control\person\person-port-repository-api\target\classes;F:\Program Files\repository\org\springframework\data\spring-data-mongodb\3.4.7\spring-data-mongodb-3.4.7.jar;F:\Program Files\repository\org\springframework\spring-tx\5.3.25\spring-tx-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-context\5.3.25\spring-context-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-aop\5.3.25\spring-aop-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-beans\5.3.25\spring-beans-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-core\5.3.25\spring-core-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-jcl\5.3.25\spring-jcl-5.3.25.jar;F:\Program Files\repository\org\springframework\spring-expression\5.3.25\spring-expression-5.3.25.jar;F:\Program Files\repository\org\springframework\data\spring-data-commons\2.7.7\spring-data-commons-2.7.7.jar;F:\Program Files\repository\org\mongodb\mongodb-driver-core\4.6.1\mongodb-driver-core-4.6.1.jar;F:\Program Files\repository\org\mongodb\bson\4.6.1\bson-4.6.1.jar;F:\Program Files\repository\org\mongodb\bson-record-codec\4.6.1\bson-record-codec-4.6.1.jar;F:\Program Files\repository\com\tplink\cdd\vigi-common-mongo\2.0.105-SNAPSHOT\vigi-common-mongo-2.0.105-SNAPSHOT.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-data-mongodb\2.7.8\spring-boot-starter-data-mongodb-2.7.8.jar;F:\Program Files\repository\org\mongodb\mongodb-driver-sync\4.6.1\mongodb-driver-sync-4.6.1.jar;F:\Program Files\repository\com\tplink\cdd\vigi-common-eventbus\2.0.105-SNAPSHOT\vigi-common-eventbus-2.0.105-SNAPSHOT.jar;F:\Program Files\repository\com\tplink\smb\eventcenter.api\1.4.5\eventcenter.api-1.4.5.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter\2.7.8\spring-boot-starter-2.7.8.jar;F:\Program Files\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;F:\Program Files\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-log4j2\2.7.8\spring-boot-starter-log4j2-2.7.8.jar;F:\Program Files\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;F:\Program Files\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;F:\Program Files\repository\org\apache\logging\log4j\log4j-slf4j-impl\2.17.2\log4j-slf4j-impl-2.17.2.jar;F:\Program Files\repository\org\apache\logging\log4j\log4j-core\2.17.2\log4j-core-2.17.2.jar;F:\Program Files\repository\org\apache\logging\log4j\log4j-jul\2.17.2\log4j-jul-2.17.2.jar;F:\Program Files\repository\org\projectlombok\lombok\1.18.24\lombok-1.18.24.jar;F:\Program Files\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;F:\Program Files\repository\com\tplink\cdd\vigi-common-tpcloud\2.0.105-SNAPSHOT\vigi-common-tpcloud-2.0.105-SNAPSHOT.jar;F:\Program Files\repository\com\tplink\nbu\common\platform-cloud-sdk\2.1.60\platform-cloud-sdk-2.1.60.jar;F:\Program Files\repository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;F:\Program Files\repository\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;F:\Program Files\repository\com\tplink\account-api-sdk\1.3.172\account-api-sdk-1.3.172.jar;F:\Program Files\repository\com\tplink\platform\common-grpc\1.0.4\common-grpc-1.0.4.jar;F:\Program Files\repository\com\google\protobuf\protobuf-java\3.19.2\protobuf-java-3.19.2.jar;F:\Program Files\repository\com\tplink\nbu\common\pii-mask-spring-boot-autoconfigure\2.1.51\pii-mask-spring-boot-autoconfigure-2.1.51.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-web\2.7.8\spring-boot-starter-web-2.7.8.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-json\2.7.8\spring-boot-starter-json-2.7.8.jar;F:\Program Files\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.4\jackson-datatype-jdk8-2.13.4.jar;F:\Program Files\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.4\jackson-module-parameter-names-2.13.4.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.8\spring-boot-starter-tomcat-2.7.8.jar;F:\Program Files\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.71\tomcat-embed-websocket-9.0.71.jar;F:\Program Files\repository\org\springframework\spring-webmvc\5.3.25\spring-webmvc-5.3.25.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-validation\2.7.8\spring-boot-starter-validation-2.7.8.jar;F:\Program Files\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.71\tomcat-embed-el-9.0.71.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-starter-actuator\2.7.8\spring-boot-starter-actuator-2.7.8.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.8\spring-boot-actuator-autoconfigure-2.7.8.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-actuator\2.7.8\spring-boot-actuator-2.7.8.jar;F:\Program Files\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.4\jackson-datatype-jsr310-2.13.4.jar;F:\Program Files\repository\com\hubspot\jackson\jackson-datatype-protobuf\0.9.15\jackson-datatype-protobuf-0.9.15.jar;F:\Program Files\repository\com\google\protobuf\protobuf-java-util\3.19.3\protobuf-java-util-3.19.3.jar;F:\Program Files\repository\com\google\code\findbugs\annotations\3.0.1\annotations-3.0.1.jar;F:\Program Files\repository\com\tplink\account-sdk\1.3.172\account-sdk-1.3.172.jar;F:\Program Files\repository\com\tplink\account\auth-sdk\1.1.621\auth-sdk-1.1.621.jar;F:\Program Files\repository\com\tplink\common\mail-sdk\1.1.507\mail-sdk-1.1.507.jar;F:\Program Files\repository\org\springframework\spring-web\5.3.25\spring-web-5.3.25.jar;F:\Program Files\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.71\tomcat-embed-core-9.0.71.jar;F:\Program Files\repository\org\apache\tomcat\tomcat-annotations-api\9.0.71\tomcat-annotations-api-9.0.71.jar;F:\Program Files\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;F:\Program Files\repository\org\hibernate\validator\hibernate-validator\6.2.5.Final\hibernate-validator-6.2.5.Final.jar;F:\Program Files\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;F:\Program Files\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;F:\Program Files\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;F:\Program Files\repository\com\tplink\cdd\common\components-email-cloud-platform\1.0.11\components-email-cloud-platform-1.0.11.jar;F:\Program Files\repository\com\tplink\cdd\common\components-email-api\1.0.11\components-email-api-1.0.11.jar;F:\Program Files\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;F:\Program Files\repository\com\tplink\cdd\common\components-email-common\1.0.11\components-email-common-1.0.11.jar;F:\Program Files\repository\com\tplink\smb\solution-components-lock-api\1.1.5\solution-components-lock-api-1.1.5.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.8\spring-boot-autoconfigure-2.7.8.jar;F:\Program Files\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;F:\Program Files\repository\com\tplink\smb\solution-components-cache-api\1.4.3\solution-components-cache-api-1.4.3.jar;F:\Program Files\repository\com\tplink\smb\solution-components-cache-mem\1.4.3\solution-components-cache-mem-1.4.3.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-configuration-processor\2.7.8\spring-boot-configuration-processor-2.7.8.jar;F:\Program Files\repository\com\github\ben-manes\caffeine\caffeine\2.9.3\caffeine-2.9.3.jar;F:\Program Files\repository\org\checkerframework\checker-qual\3.19.0\checker-qual-3.19.0.jar;F:\Program Files\repository\com\google\errorprone\error_prone_annotations\2.10.0\error_prone_annotations-2.10.0.jar;F:\Program Files\repository\com\tplink\smb\solution-component-storage-api\1.4.10\solution-component-storage-api-1.4.10.jar;F:\Program Files\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;F:\Program Files\repository\com\tplink\smb\solution-component-storage-port-s3\1.4.10\solution-component-storage-port-s3-1.4.10.jar;F:\Program Files\repository\com\amazonaws\aws-java-sdk-s3\1.12.415\aws-java-sdk-s3-1.12.415.jar;F:\Program Files\repository\com\amazonaws\aws-java-sdk-kms\1.12.415\aws-java-sdk-kms-1.12.415.jar;F:\Program Files\repository\com\amazonaws\aws-java-sdk-core\1.12.415\aws-java-sdk-core-1.12.415.jar;F:\Program Files\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;F:\Program Files\repository\software\amazon\ion\ion-java\1.0.2\ion-java-1.0.2.jar;F:\Program Files\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.13.4\jackson-dataformat-cbor-2.13.4.jar;F:\Program Files\repository\joda-time\joda-time\2.8.1\joda-time-2.8.1.jar;F:\Program Files\repository\com\amazonaws\jmespath-java\1.12.415\jmespath-java-1.12.415.jar;F:\Program Files\repository\com\amazonaws\aws-java-sdk-sts\1.12.415\aws-java-sdk-sts-1.12.415.jar;F:\Program Files\repository\org\bouncycastle\bcprov-jdk15on\1.68\bcprov-jdk15on-1.68.jar;F:\Program Files\repository\com\tplink\cdd\vigi-common-algorithm\2.0.105-SNAPSHOT\vigi-common-algorithm-2.0.105-SNAPSHOT.jar;F:\Program Files\repository\com\amazonaws\aws-java-sdk-lambda\1.11.923\aws-java-sdk-lambda-1.11.923.jar;F:\Program Files\repository\com\tplink\smb\eventcenter.kafka\1.4.5\eventcenter.kafka-1.4.5.jar;F:\Program Files\repository\com\tplink\smb\eventcenter.core\1.4.5\eventcenter.core-1.4.5.jar;F:\Program Files\repository\org\springframework\kafka\spring-kafka\2.8.11\spring-kafka-2.8.11.jar;F:\Program Files\repository\org\springframework\spring-messaging\5.3.25\spring-messaging-5.3.25.jar;F:\Program Files\repository\org\springframework\retry\spring-retry\1.3.4\spring-retry-1.3.4.jar;F:\Program Files\repository\org\apache\kafka\kafka-clients\3.1.2\kafka-clients-3.1.2.jar;F:\Program Files\repository\com\github\luben\zstd-jni\1.5.0-4\zstd-jni-1.5.0-4.jar;F:\Program Files\repository\org\lz4\lz4-java\1.8.0\lz4-java-1.8.0.jar;F:\Program Files\repository\org\xerial\snappy\snappy-java\1.1.8.4\snappy-java-1.1.8.4.jar;F:\Program Files\repository\io\micrometer\micrometer-core\1.9.7\micrometer-core-1.9.7.jar;F:\Program Files\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;F:\Program Files\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;F:\Program Files\repository\io\github\resilience4j\resilience4j-circuitbreaker\1.3.0\resilience4j-circuitbreaker-1.3.0.jar;F:\Program Files\repository\io\vavr\vavr\0.10.2\vavr-0.10.2.jar;F:\Program Files\repository\io\vavr\vavr-match\0.10.2\vavr-match-0.10.2.jar;F:\Program Files\repository\io\github\resilience4j\resilience4j-core\1.3.0\resilience4j-core-1.3.0.jar;F:\Program Files\repository\com\fasterxml\jackson\core\jackson-databind\2.13.4.2\jackson-databind-2.13.4.2.jar;F:\Program Files\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.4\jackson-annotations-2.13.4.jar;F:\Program Files\repository\com\fasterxml\jackson\core\jackson-core\2.13.4\jackson-core-2.13.4.jar;F:\Program Files\repository\com\esotericsoftware\kryo\5.5.0\kryo-5.5.0.jar;F:\Program Files\repository\com\esotericsoftware\reflectasm\1.11.9\reflectasm-1.11.9.jar;F:\Program Files\repository\com\esotericsoftware\minlog\1.3.1\minlog-1.3.1.jar;F:\Program Files\repository\com\tplink\smb\solution-components-lock-mem\1.3.4\solution-components-lock-mem-1.3.4.jar;F:\Program Files\repository\net\coobird\thumbnailator\0.4.20\thumbnailator-0.4.20.jar;F:\Program Files\repository\com\github\gotson\webp-imageio\0.2.2\webp-imageio-0.2.2.jar;F:\Program Files\repository\com\tplink\cdd\vigi-common\2.0.105-SNAPSHOT\vigi-common-2.0.105-SNAPSHOT.jar;F:\Program Files\repository\com\google\guava\guava\29.0-jre\guava-29.0-jre.jar;F:\Program Files\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;F:\Program Files\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;F:\Program Files\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;F:\Program Files\repository\org\json\json\20230227\json-20230227.jar;F:\Program Files\repository\cn\hutool\hutool-core\5.8.15\hutool-core-5.8.15.jar;F:\Program Files\repository\cn\hutool\hutool-crypto\5.8.15\hutool-crypto-5.8.15.jar;F:\Program Files\repository\org\springframework\boot\spring-boot\2.7.8\spring-boot-2.7.8.jar;F:\Program Files\repository\io\micrometer\micrometer-registry-prometheus\1.9.7\micrometer-registry-prometheus-1.9.7.jar;F:\Program Files\repository\io\prometheus\simpleclient_common\0.15.0\simpleclient_common-0.15.0.jar;F:\Program Files\repository\io\prometheus\simpleclient\0.15.0\simpleclient-0.15.0.jar;F:\Program Files\repository\io\prometheus\simpleclient_tracer_otel\0.15.0\simpleclient_tracer_otel-0.15.0.jar;F:\Program Files\repository\io\prometheus\simpleclient_tracer_common\0.15.0\simpleclient_tracer_common-0.15.0.jar;F:\Program Files\repository\io\prometheus\simpleclient_tracer_otel_agent\0.15.0\simpleclient_tracer_otel_agent-0.15.0.jar;F:\Program Files\repository\com\tplink\nbu\common\nbu-common-utils\2.1.60\nbu-common-utils-2.1.60.jar;F:\Program Files\repository\org\softee\pojo-mbean\1.1\pojo-mbean-1.1.jar;F:\Program Files\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;F:\Program Files\repository\com\tplink\nbu\common\pii\2.1.60\pii-2.1.60.jar;F:\Program Files\repository\com\jayway\jsonpath\json-path\2.7.0\json-path-2.7.0.jar;F:\Program Files\repository\net\minidev\json-smart\2.4.8\json-smart-2.4.8.jar;F:\Program Files\repository\net\minidev\accessors-smart\2.4.8\accessors-smart-2.4.8.jar;F:\Program Files\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;F:\Program Files\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;F:\Program Files\repository\io\netty\netty-all\4.1.87.Final\netty-all-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-buffer\4.1.87.Final\netty-buffer-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec\4.1.87.Final\netty-codec-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-dns\4.1.87.Final\netty-codec-dns-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-haproxy\4.1.87.Final\netty-codec-haproxy-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-http\4.1.87.Final\netty-codec-http-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-http2\4.1.87.Final\netty-codec-http2-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-memcache\4.1.87.Final\netty-codec-memcache-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-mqtt\4.1.87.Final\netty-codec-mqtt-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-redis\4.1.87.Final\netty-codec-redis-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-smtp\4.1.87.Final\netty-codec-smtp-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-socks\4.1.87.Final\netty-codec-socks-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-stomp\4.1.87.Final\netty-codec-stomp-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-codec-xml\4.1.87.Final\netty-codec-xml-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-common\4.1.87.Final\netty-common-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-handler\4.1.87.Final\netty-handler-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-native-unix-common\4.1.87.Final\netty-transport-native-unix-common-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-handler-proxy\4.1.87.Final\netty-handler-proxy-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-handler-ssl-ocsp\4.1.87.Final\netty-handler-ssl-ocsp-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-resolver\4.1.87.Final\netty-resolver-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-resolver-dns\4.1.87.Final\netty-resolver-dns-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport\4.1.87.Final\netty-transport-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-rxtx\4.1.87.Final\netty-transport-rxtx-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-sctp\4.1.87.Final\netty-transport-sctp-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-udt\4.1.87.Final\netty-transport-udt-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-classes-epoll\4.1.87.Final\netty-transport-classes-epoll-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-classes-kqueue\4.1.87.Final\netty-transport-classes-kqueue-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-resolver-dns-classes-macos\4.1.87.Final\netty-resolver-dns-classes-macos-4.1.87.Final.jar;F:\Program Files\repository\io\netty\netty-transport-native-epoll\4.1.87.Final\netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar;F:\Program Files\repository\io\netty\netty-transport-native-epoll\4.1.87.Final\netty-transport-native-epoll-4.1.87.Final-linux-aarch_64.jar;F:\Program Files\repository\io\netty\netty-transport-native-kqueue\4.1.87.Final\netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar;F:\Program Files\repository\io\netty\netty-transport-native-kqueue\4.1.87.Final\netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar;F:\Program Files\repository\io\netty\netty-resolver-dns-native-macos\4.1.87.Final\netty-resolver-dns-native-macos-4.1.87.Final-osx-x86_64.jar;F:\Program Files\repository\io\netty\netty-resolver-dns-native-macos\4.1.87.Final\netty-resolver-dns-native-macos-4.1.87.Final-osx-aarch_64.jar;F:\Program Files\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;F:\Program Files\repository\net\sourceforge\javacsv\javacsv\2.0\javacsv-2.0.jar;F:\Program Files\repository\com\googlecode\java-ipv6\java-ipv6\0.17\java-ipv6-0.17.jar;F:\Program Files\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;F:\Program Files\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;F:\Program Files\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;F:\Program Files\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;F:\Program Files\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;F:\Program Files\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;F:\Program Files\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;F:\Program Files\repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;F:\Program Files\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;F:\Program Files\repository\org\bouncycastle\bcpkix-jdk15on\1.68\bcpkix-jdk15on-1.68.jar;F:\Program Files\repository\org\mapstruct\mapstruct\1.4.2.Final\mapstruct-1.4.2.Final.jar;F:\Program Files\repository\org\mapstruct\mapstruct-processor\1.4.2.Final\mapstruct-processor-1.4.2.Final.jar;F:\Program Files\repository\org\apache\skywalking\apm-toolkit-log4j-2.x\8.1.0\apm-toolkit-log4j-2.x-8.1.0.jar;F:\Program Files\repository\org\apache\skywalking\apm-toolkit-trace\8.1.0\apm-toolkit-trace-8.1.0.jar;F:\Program Files\repository\com\tplink\nbu\skywalking-sdk\1.0.0\skywalking-sdk-1.0.0.jar;F:\Program Files\repository\io\grpc\grpc-netty-shaded\1.27.1\grpc-netty-shaded-1.27.1.jar;F:\Program Files\repository\io\grpc\grpc-core\1.27.1\grpc-core-1.27.1.jar;F:\Program Files\repository\io\grpc\grpc-api\1.27.1\grpc-api-1.27.1.jar;F:\Program Files\repository\io\grpc\grpc-context\1.27.1\grpc-context-1.27.1.jar;F:\Program Files\repository\org\codehaus\mojo\animal-sniffer-annotations\1.18\animal-sniffer-annotations-1.18.jar;F:\Program Files\repository\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar;F:\Program Files\repository\com\google\android\annotations\4.1.1.4\annotations-4.1.1.4.jar;F:\Program Files\repository\io\perfmark\perfmark-api\0.19.0\perfmark-api-0.19.0.jar;F:\Program Files\repository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;F:\Program Files\repository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;F:\Program Files\repository\org\springframework\boot\spring-boot-test\2.7.8\spring-boot-test-2.7.8.jar;F:\Program Files\repository\org\mockito\mockito-core\3.7.7\mockito-core-3.7.7.jar;F:\Program Files\repository\net\bytebuddy\byte-buddy\1.12.22\byte-buddy-1.12.22.jar;F:\Program Files\repository\net\bytebuddy\byte-buddy-agent\1.12.22\byte-buddy-agent-1.12.22.jar;F:\Program Files\repository\org\mockito\mockito-inline\3.7.7\mockito-inline-3.7.7.jar;F:\Program Files\repository\org\powermock\powermock-module-junit4\2.0.0\powermock-module-junit4-2.0.0.jar;F:\Program Files\repository\org\powermock\powermock-module-junit4-common\2.0.0\powermock-module-junit4-common-2.0.0.jar;F:\Program Files\repository\org\powermock\powermock-reflect\2.0.0\powermock-reflect-2.0.0.jar;F:\Program Files\repository\org\powermock\powermock-core\2.0.0\powermock-core-2.0.0.jar;F:\Program Files\repository\org\javassist\javassist\3.24.0-GA\javassist-3.24.0-GA.jar;F:\Program Files\repository\junit\junit\4.13.2\junit-4.13.2.jar;F:\Program Files\repository\org\hamcrest\hamcrest-core\2.2\hamcrest-core-2.2.jar;F:\Program Files\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;F:\Program Files\repository\org\powermock\powermock-api-mockito2\2.0.0\powermock-api-mockito2-2.0.0.jar;F:\Program Files\repository\org\powermock\powermock-api-support\2.0.0\powermock-api-support-2.0.0.jar;F:\Program Files\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest java.lang.RuntimeException: Failed to reset static mocks at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:86) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.tearDown(ExportPersonServiceTest.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.MethodRoadie.runAfters(MethodRoadie.java:150) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:102) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: org.powermock.reflect.exceptions.FieldNotFoundException: No static field named "INSTANCE" could be found in the class hierarchy of org.powermock.core.MockRepository. at org.powermock.reflect.internal.matcherstrategies.FieldNameMatcherStrategy.notFound(FieldNameMatcherStrategy.java:40) at org.powermock.reflect.internal.WhiteboxImpl.findSingleFieldUsingStrategy(WhiteboxImpl.java:501) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:454) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:442) at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:426) at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:292) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:83) ... 32 more java.lang.NullPointerException at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.lambda$null$0(ExportPersonService.java:143) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1723) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.lambda$getGroupName$2(ExportPersonService.java:143) at java.util.ArrayList.forEach(ArrayList.java:1259) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.getGroupName(ExportPersonService.java:140) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.exportFromServer(ExportPersonService.java:90) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.testExportFromServer_SuccessWithoutCard(ExportPersonServiceTest.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:326) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) java.lang.RuntimeException: Failed to reset static mocks at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:86) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.tearDown(ExportPersonServiceTest.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.MethodRoadie.runAfters(MethodRoadie.java:150) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:102) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: org.powermock.reflect.exceptions.FieldNotFoundException: No static field named "INSTANCE" could be found in the class hierarchy of org.powermock.core.MockRepository. at org.powermock.reflect.internal.matcherstrategies.FieldNameMatcherStrategy.notFound(FieldNameMatcherStrategy.java:40) at org.powermock.reflect.internal.WhiteboxImpl.findSingleFieldUsingStrategy(WhiteboxImpl.java:501) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:454) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:442) at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:426) at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:292) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:83) ... 32 more java.lang.NullPointerException at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.lambda$null$0(ExportPersonService.java:143) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1723) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.lambda$getGroupName$2(ExportPersonService.java:143) at java.util.ArrayList.forEach(ArrayList.java:1259) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.getGroupName(ExportPersonService.java:140) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonService.exportFromServer(ExportPersonService.java:90) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.testExportFromServer_SuccessWithAllFields(ExportPersonServiceTest.java:203) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:326) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) java.lang.RuntimeException: Failed to reset static mocks at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:86) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.tearDown(ExportPersonServiceTest.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.MethodRoadie.runAfters(MethodRoadie.java:150) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:102) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: org.powermock.reflect.exceptions.FieldNotFoundException: No static field named "INSTANCE" could be found in the class hierarchy of org.powermock.core.MockRepository. at org.powermock.reflect.internal.matcherstrategies.FieldNameMatcherStrategy.notFound(FieldNameMatcherStrategy.java:40) at org.powermock.reflect.internal.WhiteboxImpl.findSingleFieldUsingStrategy(WhiteboxImpl.java:501) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:454) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:442) at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:426) at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:292) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:83) ... 32 more org.mockito.exceptions.base.MockitoException: For com.tplink.cdd.vms.person.core.domain.util.DOAndDTOMapperUtils, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.testGetCard_Logic(ExportPersonServiceTest.java:238) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:326) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) java.lang.RuntimeException: Failed to reset static mocks at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:86) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.tearDown(ExportPersonServiceTest.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.internal.runners.MethodRoadie.runAfters(MethodRoadie.java:150) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:102) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:134) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: org.powermock.reflect.exceptions.FieldNotFoundException: No static field named "INSTANCE" could be found in the class hierarchy of org.powermock.core.MockRepository. at org.powermock.reflect.internal.matcherstrategies.FieldNameMatcherStrategy.notFound(FieldNameMatcherStrategy.java:40) at org.powermock.reflect.internal.WhiteboxImpl.findSingleFieldUsingStrategy(WhiteboxImpl.java:501) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:454) at org.powermock.reflect.internal.WhiteboxImpl.findFieldInHierarchy(WhiteboxImpl.java:442) at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:426) at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:292) at com.tplink.cdd.vms.person.core.domain.person.ExportPersonServiceTest.resetStaticMocks(ExportPersonServiceTest.java:83) ... 32 more 进程已结束,退出代码为 -1
08-16
------------------------------------------------------------------------------- Test set: com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest ------------------------------------------------------------------------------- Tests run: 7, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.393 s <<< FAILURE! -- in com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.delete -- Time elapsed: 0.175 s <<< ERROR! org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: interface com.huawei.mateinfo.sdk.tenant.TenantManager. If you're not sure why you're getting this error, please open an issue on GitHub. Java : 21 JVM vendor name : Oracle Corporation JVM vendor version : 21+35-2513 JVM name : OpenJDK 64-Bit Server VM JVM version : 21+35-2513 JVM info : mixed mode, sharing OS name : Windows 11 OS version : 10.0 You are seeing this disclaimer because Mockito is configured to create inlined mocks. You can learn about inline mocks and their limitations under item #39 of the Mockito class javadoc. Underlying exception : org.mockito.exceptions.base.MockitoException: Cannot instrument interface com.huawei.mateinfo.sdk.tenant.TenantManager because it or one of its supertypes could not be initialized at com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.init(BugServiceImplTest.java:67) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Suppressed: java.lang.NullPointerException: Cannot invoke "org.mockito.MockedStatic.closeOnDemand()" because "this.mockedTenantManager" is null at com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.tearDownStaticMocks(BugServiceImplTest.java:87) at java.base/java.lang.reflect.Method.invoke(Method.java:580) ... 2 more Caused by: org.mockito.exceptions.base.MockitoException: Cannot instrument interface com.huawei.mateinfo.sdk.tenant.TenantManager because it or one of its supertypes could not be initialized at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399) at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410) ... 3 more Caused by: java.lang.NullPointerException: Cannot invoke "org.springframework.context.ConfigurableApplicationContext.getBean(java.lang.Class)" because the return value of "java.util.concurrent.atomic.AtomicReference.get()" is null at com.huawei.mateinfo.sdk.common.spring.SpringContext.getBean(SpringContext.java:62) at com.huawei.mateinfo.sdk.tenant.TenantManager.<clinit>(TenantManager.java:143) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:534) at java.base/java.lang.Class.forName(Class.java:513) at org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.assureInitialization(InlineBytecodeGenerator.java:236) at org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.triggerRetransformation(InlineBytecodeGenerator.java:261) at org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:218) at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.lambda$mockClass$0(TypeCachingBytecodeGenerator.java:78) at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399) at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410) at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.mockClass(TypeCachingBytecodeGenerator.java:75) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMockType(InlineDelegateByteBuddyMockMaker.java:414) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:373) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:352) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.createMock(InlineByteBuddyMockMaker.java:56) at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:99) at org.mockito.internal.MockitoCore.mock(MockitoCore.java:84) at org.mockito.Mockito.mock(Mockito.java:2104) at org.mockito.internal.configuration.MockAnnotationProcessor.processAnnotationForMock(MockAnnotationProcessor.java:79) at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:28) at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:25) at org.mockito.internal.configuration.IndependentAnnotationEngine.createMockFor(IndependentAnnotationEngine.java:44) at org.mockito.internal.configuration.IndependentAnnotationEngine.process(IndependentAnnotationEngine.java:72) at org.mockito.internal.configuration.InjectingAnnotationEngine.processIndependentAnnotations(InjectingAnnotationEngine.java:62) at org.mockito.internal.configuration.InjectingAnnotationEngine.process(InjectingAnnotationEngine.java:47) at org.mockito.MockitoAnnotations.openMocks(MockitoAnnotations.java:81) at com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.init(BugServiceImplTest.java:67) at java.base/java.lang.reflect.Method.invoke(Method.java:580) ... 2 more com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.findByParam -- Time elapsed: 0.003 s <<< ERROR! java.lang.IllegalArgumentException: Please don't pass mock here. Spy is not allowed on mock. at org.mockito.Mockito.spy(Mockito.java:2188) at com.huawei.adcmate.sectest.executor.service.impl.BugServiceImplTest.findByParam(BugServiceImplTest.java:167) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
最新发布
11-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值