【问题标题】:Unit Test fails with GrailsConfigurationException - cannot find responsible line of code单元测试因 GrailsConfigurationException 而失败 - 找不到负责的代码行
【发布时间】:2015-11-15 10:30:52
【问题描述】:

我正在使用标准 spock 框架为我的 Grails 3.0.3 应用程序编写单元测试。

搭建的所有东西
grails create-app  

我用

创建了我的单元测试
grails create-unit-test

手动添加@TestFor注解和测试逻辑。我明白了

mypackage.MyClassSpec > test myMethod method FAILED
org.grails.core.exceptions.GrailsConfigurationException

GIST of My test class (generalized and simplified)

运行后stacktrace中没有行号

grails test-app --stacktrace

如何找出导致此异常的原因?

【问题讨论】:

  • toTsv(listOfMaps) 方法需要做什么?配置设置?其他服务?这些都需要在单元测试用例中进行模拟。没有看到 toTsv 代码,很难有任何具体的想法来寻求帮助。
  • 您好,感谢您的发言。这是一个独立的方法,不依赖任何外部服务,它只接受一个地图列表。但是我已经解决了这个问题 - 我删除了@TestFor Annotation... 现在它可以工作了。我仍然想了解它为什么会失败,我还在学习 Grails 和 Spock,所以这可能是一些基本错误。

标签: unit-testing grails spock grails-3.0


【解决方案1】:

TestFor 注释用于测试 Grails 人工制品(是的,这就是它在源代码中的拼写方式)。

TestFor 注解定义了被测类,并将 自动为被测类的类型创建一个字段。为了 例如,在上述情况下,将出现“控制器”字段, 但是,如果为服务定义了 TestFor,则“服务”字段将 被创建等等。

您正在测试的类是一个普通的 Groovy 类,而不是 Grails 控制器、服务等。所以,BAM!你遇到了一个尴尬的例外。

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多