spring - 为什么从 GroovyTestCase 继承会导致 Grails 2.2 中出现 Spring 错误?

标签 spring grails groovy integration-testing

在我创建域类时由 Grails 为我生成的集成测试类不扩展类 GroovyTestCase。但是,我已经看到许多作者推荐它(here 是一个示例,以便使用 shouldFail 方法,这似乎确实有效)。

但是,当我运行 test-app 时,从 GroovyTestCase 扩展我的测试类会导致以下错误消息在交互式 Grails 控制台中:

Spring Loaded: Cannot reload new version of foo.barTests
Reason: Supertype changed from java/lang/Object to groovy/util/GroovyTestCase

这是我应该关心的事情吗?我在网上搜索过,找不到其他人提示这个错误,所以它可能是 Grails 2.2 的新内容。请指教。

我在 grails 交互式控制台中运行我的测试(当你运行 grails 时得到什么不带参数)。我已经让我的测试从 Object 继承了一段时间,但是当我运行 test-app 时我仍然偶尔将这些消息输出到 HTML 测试报告(“从 GroovyTestCase 更改为 Object”种类)。

最佳答案

我很确定这是一个与 Grails 相关的错误

  • AST 转换注释
  • Spring 加载模块

  • 因为我也遇到过这种奇怪的行为。

    导致这个问题的步骤似乎是一个 Groovy 类在没有转换的情况下编译一次,所以它是 java.lang.Object 的子类。 .

    当 AST 转换启动它时,该类将再次重新编译。这一次,它成为另一个类的子类。然后 Spring-loaded 无法将它们重新加载到内存中(因为 JVM 不允许同一个类重新定义其父类(super class))。

    关于spring - 为什么从 GroovyTestCase 继承会导致 Grails 2.2 中出现 Spring 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428864/

    相关文章:

    java - @Scheduled 中运行的作业不会调用 spring 数据 jpa 保存

    java - Spring Integration - 占位符未注入(inject) ws :outbound-gateway uri (only for unit tests)

    Java正则表达式到groovy

    grails - GSP/Groovy - g :each with array of objects

    kotlin - 用于 build.gradle.kts 的 Jaxb。如何将其从groovy翻译成kotlin?

    java - 从 Spring MVC Controller 的安全上下文中获取 UserDetails 对象

    java - 创建 REST API 以在 Spring Boot 中上传多部分文件数据

    html - 将参数添加到href网址

    grails - Grails:使用两个数据库(一个使用域类创建,另一个是现有的数据库)

    grails - 如何在gsp grails中设置格式字符串?