我是一个groovy初学者,并试图使用IntelliJ为类sampleHelper构建一个示例项目和一些spock测试。运行createToken方法的测试会导致以下错误:groovy.lang.MissingPropertyException: No such property: sampleConstants for class: com.tutorial.sampleHelper
我的理解是,同一个包中的类不需要导入。我一定是犯了一个愚蠢的错误,但我不知道我错在哪里。任何指针是赞赏。
单击类中的sampleConstants.TOKEN
可转到正确的文件。
我的文件夹结构如下:
└── sample-project
├── pom.xml
├── resources
├── src --> set as sources root
│ └── com
│ └── tutorial
│ ├── sampleConstants
│ └── sampleHelper
└── tests --> set as tests root
└── com
└── tutorial
└── sampleHelper
sampleHelper.groovy:
package com.tutorial
public class sampleHelper implements Serializable {
Boolean enabled
public sampleHelper(config) {
this.enabled = config.enabled
}
def createToken() {
def token = enabled ? "abc" : sampleConstants.TOKEN
return token
}
}
sampleConstants.groovy
package com.tutorial
public class sampleConstants {
static final TOKEN = "cde"
}
1条答案
按热度按时间ifmq2ha21#
Java(和Groovy)中的类传统上以大写字母开头。
Groovy解析器有时依赖于这种传统,如果您使用小写字母的类,它很难理解您的意思,而是寻找具有该名称的字段或变量。
类名(以及包含它们的文件)总是使用大写字母,这是一个好主意,因为这样可以避免类似这样的事情(看起来世界已经疯了)😉