【发布时间】: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