【问题标题】:got 'VerifyError' when Mock in Spock1.1在 Spock1.1 中模拟时得到“验证错误”
【发布时间】:2017-06-05 07:58:28
【问题描述】:

当我尝试模拟 spring 服务时,我得到了verifyError。我检查了 spock 版本和 groovy 版本,没问题。有人可以指出我如何解决这个问题吗?谢谢!

  • Spock 版本:spock-core-1.1-groovy-2.4-rc-3.jar
  • Groovy 版本:groovy-all-2.4.6.jar
  • Cglib 版本:cglib-nodep-3.2.4.jar

    java.lang.VerifyError: 类 net.sf.cglib.core.DebuggingClassWriter 覆盖最终方法访问。(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String; )V 在 java.lang.ClassLoader.defineClass(ClassLoader.java:763) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:362) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 net.sf.cglib.core.AbstractClassGenerator.(AbstractClassGenerator.java:38) 在 net.sf.cglib.core.KeyFactory$Generator.(KeyFactory.java:127) 在 net.sf.cglib.core.KeyFactory.create(KeyFactory.java:112) 在 net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) 在 net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) 在 net.sf.cglib.proxy.Enhancer.(Enhancer.java:69) 在 org.spockframework.mock.runtime.ProxyBasedMockFactory$CglibMockFactory.createMock(ProxyBasedMockFactory.java:144) 在 org.spockframework.mock.runtime.ProxyBasedMockFactory.create(ProxyBasedMockFactory.java:66) 在 org.spockframework.mock.runtime.JavaMockFactory.createInternal(JavaMockFactory.java:59) 在 org.spockframework.mock.runtime.JavaMockFactory.create(JavaMockFactory.java:40) 在 org.spockframework.mock.runtime.CompositeMockFactory.create(CompositeMockFactory.java:44) 在 org.spockframework.lang.SpecInternals.createMock(SpecInternals.java:45) 在 org.spockframework.lang.SpecInternals.createMockImpl(SpecInternals.java:281) 在 org.spockframework.lang.SpecInternals.MockImpl(SpecInternals.java:99) 在 com.example.apiimpl.query.UserAccountAuthQueryServiceSpec.setup(UserAccountAuthQueryServiceSpec.groovy:86)

【问题讨论】:

    标签: spring groovy spock cglib verifyerror


    【解决方案1】:

    cglib 不再被积极维护,它在处理较新的字节码时存在一些问题。如果您使用较新的版本,Spock 能够使用 Byte Buddy 进行代码生成。把它放在类路径上就可以使用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多