当前位置: 首页 > 知识库问答 >
问题:

在Spock1.1中模拟时得到“VerifyError”

裴建华
2023-03-14

当我尝试模拟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。旧金山。cglib。果心DebuggingClassWriter重写最终方法访问。(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)java的V。lang.ClassLoader。java上的defineClass(ClassLoader.java:763)。安全SecureClassLoader。java上的defineClass(SecureClassLoader.java:142)。网URLClassLoader。java上的defineClass(URLClassLoader.java:467)。网URLClassLoader。在java上访问100美元(URLClassLoader.java:73)。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:368)。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:362)。网URLClassLoader。java上的findClass(URLClassLoader.java:361)。lang.ClassLoader。sun的loadClass(ClassLoader.java:424)。杂项。启动器$AppClassLoader。java上的loadClass(Launcher.java:331)。lang.ClassLoader。net上的loadClass(ClassLoader.java:357)。旧金山。cglib。果心AbstractClassGenerator。(AbstractClassGenerator.java:38)位于net。旧金山。cglib。果心KeyFactory$生成器。(KeyFactory.java:127)at net。旧金山。cglib。果心KeyFactory。在net上创建(KeyFactory.java:112)。旧金山。cglib。果心KeyFactory。在net上创建(KeyFactory.java:108)。旧金山。cglib。果心KeyFactory。在net上创建(KeyFactory.java:104)。旧金山。cglib。代理增强剂。(Enhancer.java:69)位于org。spockframework。嘲弄运行时。ProxyBasedMockFactory$CglibMockFactory。在org上创建mock(ProxyBasedMockFactory.java:144)。spockframework。嘲弄运行时。ProxyBasedMockFactory。在org上创建(ProxyBasedMockFactory.java:66)。spockframework。嘲弄运行时。JavaMockFactory。在org上创建内部(JavaMockFactory.java:59)。spockframework。嘲弄运行时。JavaMockFactory。在org上创建(JavaMockFactory.java:40)。spockframework。嘲弄运行时。CompositeMockFactory。在org上创建(CompositeMockFactory.java:44)。spockframework。lang.SpecInternals。在org上创建mock(SpecInternals.java:45)。spockframework。lang.SpecInternals。在org上创建mockimpl(SpecInternals.java:281)。spockframework。lang.SpecInternals。com上的MockImpl(SpecInternals.java:99)。实例Apimpl公司。查询UserAccountAuthQueryServiceSpec。设置(UserAccountAuthQueryServiceSpec.groovy:86)

  • 共有1个答案

    邹嘉致
    2023-03-14

    cglib不再是主动维护的,它在处理较新的字节码时存在一些问题。如果使用较新版本,Spock能够使用Byte-Buddy生成代码。只需将其放在类路径上即可使用。

     类似资料:
    • 问题内容: 我正在开发一个Web应用程序,该应用程序显然在iOS设备中存在问题。问题是我不拥有iOS设备,而是在Linux Ubuntu中进行开发。我正在寻找一种在Linux(尤其是浏览器)中仿真/模拟此OS的方法,但是还没有找到任何东西。 到目前为止,我发现的是iOS SDK的Simulator,但这是针对Mac的。还有一些Windows模拟器。有人做过吗? 问题答案: 我能想到的唯一解决方案是

    • 我知道Dan North设计BDD的意图之一是将词汇表从复杂的测试域中移开。然而,在实现由外到内的方法时,我们似乎仍然需要对模仿行为(或者,如果您愿意的话)有一些了解。North在这个视频中建议,如果我从最外层的域对象开始,然后向内工作,我会在发现合作者时模仿它们,然后用适当的实现替换它们。所以最后,我以一组端到端测试结束。 Martin Fowler在这篇博客文章中定义了TDD的两个阵营:“古典

    • null 如上所示,它导出了一些命名函数,而且重要的是 使用了 。 开玩笑地说,当我为 编写单元测试时,我希望模拟 函数,因为我不希望 中的错误影响我为 编写的单元测试。我的问题是我不确定最好的方法是: 如有任何帮助/洞察力,我们将不胜感激。

    • 我有一个在 ABC 中自动连线的 XYZ 类,在类 MyClass 中我有一个方法名称 doSomething() 在该方法中我做 ABC abc = 新的 ABC();然后我调用 abc.someMethod(); 请参见下面的代码示例: ABC类 类MyCLass 需要单元测试doSomething(),但我NPE在ABC中XYZ为空。在这种情况下,我怎么能模仿@Autowire。

    • 问题内容: 我正在尝试近两个小时,没有任何运气。 我有一个看起来像这样的模块: 稍后在代码中: 有任何想法吗? 编辑: 亚历克斯的建议似乎无效: 运行测试时: 但是,当我从python交互式控制台运行相同的代码时,它 确实 起作用。 更多编辑: 我正在使用一个测试文件,该文件具有特定于我模块这一部分的所有测试。首先,我导入可用的模块,以演示和测试常用用法。缺少软件包被认为是一种极端情况,因此我稍后