我正在测试一个使用配置属性并将其连接到字符串的服务,如:
GrailsConfig.config.test.directory + System.getProperty('file.separator')
+ <filename>
运行包含上述代码的上述方法的测试时,我收到以下错误:
groovy.lang.MissingMethodException: No signature of method:
groovy.util.ConfigObject.plus() is applicable for argument types:
(java.lang.String) values: [\]
为什么在我的集成(或单元)测试中,plus运算符不可用?!
任何帮助表示赞赏
纳斯
答案 0 :(得分:1)
这是您在未定义配置变量时看到的错误。您可能已在另一个环境中定义了test.directory
,但未在test
环境中定义。
在单元测试中,您应该使用mockConfig,如Don的回答所示,但在集成测试中,您可以像运行应用程序一样使用grails配置框架。
答案 1 :(得分:0)
我猜GrailsConfig.config.test.directory
应返回一个字符串,但它返回一个ConfigObject
(它不会使+运算符重载)。我从未尝试在集成测试中使用GrailsConfig
,因此我不知道此代码是否可以正常工作。
更好的方法可能是使用mockConfig来模拟配置值。
答案 2 :(得分:0)
好的,我发现了这个问题......使用mockConfig
时,所有字符串属性都必须在引号中,而在配置属性文件中不是这样。