【问题标题】:How to make the IDEA to recognize Spock's with() method?如何让 IDEA 识别 Spock 的 with() 方法?
【发布时间】:2018-08-20 15:34:12
【问题描述】:

我在 Groovy 上编写并使用 Spock 框架进行测试。 前段时间,IDEA 完全支持 Spock。 当我在 where-block 中编写功能(测试方法)中的代码时,如下所示:

with(someObject) {
 intField == 1
 ...
}

IDEA 正确识别 someObject 并理解 intField 是对象的字段,它还提供了对象的其他字段。因此,在 Spock 的 with() 块中,我感觉就像在 DefaultGroovyMethods 的任何闭包中一样(with{}each{}find{} 等),但不需要使用显式的 it 参数。

(所以,我写的是with(someObject) { intField == 1 },同样是someObject.with { assert it.intField == 1 }

过了一会儿,IDEA 错过了 Spock 的 with() 方法支持。 现在,它无法识别参数的类(例如someObject),认为它是Object 类的对象。闭包内的任何字段都无法识别。显式使用 it 没有帮助。

在一些 IDEA 更新后,一切都已修复,但重启后问题又出现了。

有人知道怎么解决吗?

我正在使用最新版本的 IDE - 2018.2

【问题讨论】:

    标签: intellij-idea groovy ide spock


    【解决方案1】:

    我刚刚用 2018.1 对此进行了测试,并且遇到了与您相同的问题。我没有运行代码,但我相当肯定代码会被识别和执行。在我看来,这似乎是 Intellij 的一个错误,在他们的票证跟踪系统中提交错误报告可能是值得的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 2022-10-04
      • 2017-09-24
      • 1970-01-01
      相关资源
      最近更新 更多