我在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
答案 0 :(得分:0)
我刚刚在2018.1上对此进行了测试,并且遇到了与您相同的问题。我没有运行代码,但是我相当确定代码将被识别并执行。在我看来,这似乎是Intellij的错误,可能值得在他们的票证跟踪系统中提交错误报告。