intellij-idea IntelliJ中的JUnit测试失败,出现错误|模拟异常错误:Mockito无法模拟此类:classaerospike.core.AerospikeTemplate

o4hqfura  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(210)

以下是异常的完整堆栈跟踪:

忽略测试。

组织.mockito.异常.基本. mockito异常:Mockito无法模拟此类:class org. springframework. data. aespike. core. aespikeTemplate. Mockito只能模拟非私有和非final类。如果您不确定为什么会出现此错误,请向邮件列表报告。

Java:1.8 JVM供应商名称:Oracle Corporation JVM供应商版本:25.333-b 02 JVM名称:Java HotSpot(TM)64位服务器VM JVM版本:1.8.0_333-b 02虚拟机信息
:混合模式操作系统名称:Mac OS X操作系统版本:12.6

Underlying exception : java.lang.reflect.MalformedParameterizedTypeException

    at org.mockito.internal.runners.DefaultInternalRunner$1.withBefores(DefaultInternalRunner.java:39)
    at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:276)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:79)
    at org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:85)
    at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:39)
    at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163)
    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:235)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: java.lang.reflect.MalformedParameterizedTypeException
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:58)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:51)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:92)
    at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:105)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:140)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
    at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
    at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
    at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection$ForLoadedReturnType.resolve(TypeDescription.java:5689)
    at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection.accept(TypeDescription.java:5330)
    at net.bytebuddy.description.method.MethodDescription$TypeSubstituting.getReturnType(MethodDescription.java:1332)
    at net.bytebuddy.description.method.MethodDescription$AbstractBase.asSignatureToken(MethodDescription.java:704)
    at net.bytebuddy.matcher.SignatureTokenMatcher.matches(SignatureTokenMatcher.java:30)
    at net.bytebuddy.matcher.SignatureTokenMatcher.matches(SignatureTokenMatcher.java:11)
    at net.bytebuddy.matcher.ElementMatcher$Junction$Conjunction.matches(ElementMatcher.java:101)
    at net.bytebuddy.matcher.FilterableList$AbstractBase.filter(FilterableList.java:96)
    at net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.invokeConstructor(SubclassImplementationTarget.java:59)
    at net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.invokeSuper(SubclassImplementationTarget.java:45)
    at net.bytebuddy.implementation.Implementation$Target$AbstractBase.invokeDominant(Implementation.java:365)
    at net.bytebuddy.implementation.SuperMethodCall$Appender.apply(SuperMethodCall.java:95)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyCode(TypeWriter.java:620)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:609)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:526)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForCreation.create(TypeWriter.java:4170)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1633)
    at net.

这些测试在通过mvn clean install cmd运行时执行良好。我已经尝试了我可以在网上找到的所有解决方案,如将Mockito升级到最新版本,更新bytebuddy版本等。

aor9mmx1

aor9mmx11#

根据这个article,你需要添加一个名为org.mockito.plugins.MockMaker的文本文件到项目的src/test/resources/mockito-extensions目录中,并添加一行文本:
模拟制作器内联
Mockito在加载时会检查extensions目录中的配置文件。该文件允许对final方法和类进行模拟。

相关问题