如何使IDEA识别Spock的with()方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使IDEA识别Spock的with()方法?相关的知识,希望对你有一定的参考价值。
我在Groovy上写,并使用Spock框架进行测试。前一段时间,IDEA完全支持Spock。当我在where-block中编写代码内部的功能(测试方法)时:
with(someObject) {
intField == 1
...
}
IDEA正确地识别someObject
并且理解intField
是对象的领域,它也提供了我对象的其他领域。因此,在Spock的with()
块中,我感觉就像在DefaultGroovyMethods(with{}
,each{}
,find{}
等)的任何闭包内,但不需要使用显式的it
param。
(所以,我在写with(someObject) { intField == 1 }
,someObject.with { assert it.intField == 1 }
是一样的。
过了一会儿,IDEA错过了Spock的with()方法支持。现在,它不认识参数的类(例如someObject
)认为它是Object
类的对象。闭包内的任何字段都不会被识别。明确的it
用法没有帮助。
在一些IDEA更新后,一切都已修复,但重启后问题又回来了。
有人知道怎么解决吗?
我正在使用IDE的最新版本 - 2018.2
我刚用2018.1进行了测试,并且和你有同样的问题。我没有运行代码,但我相当肯定代码将被识别并执行。这对我来说看起来像是Intellij的一个错误,在他们的票证跟踪系统中提交错误报告可能是值得的。
以上是关于如何使IDEA识别Spock的with()方法?的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 的零覆盖:带有 Spock 单元测试的 Grails
Compile Groovy/Spock with GMavenPlus
解决IDEA 中git 无法自动push 提交问题 Push failed: Failed with error: Could not read from remote repository.(示例代