2011-10-17 38 views
0

我測試服務,這是使用的配置屬性,並將它加到一個字符串,這樣的:的Grails:ConfigObject.plus()在集成測試不可

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: [\] 

爲什麼在我的集成(或單元)測試中加號運算符不可用?

任何幫助表示讚賞

喬納斯

回答

0

我想GrailsConfig.config.test.directory應該返回一個字符串,但它返回一個ConfigObject,而不是(不超載+運算符)。我從來沒有嘗試過在集成測試中使用GrailsConfig,所以我不知道這個代碼是否有效。

更好的方法可能是使用mockConfig來替代模擬配置值。

1

這是您在未定義配置變量時看到的錯誤。您可能已在另一個環境中定義了test.directory,但不是test環境。

在單元測試中,您應該使用mockConfig作爲Don的答案建議,但在集成測試中,您可以像運行應用程序時那樣使用grails配置框架。

0

好的,我發現這個問題...所有字符串屬性必須在引號中使用mockConfig,這是不屬於出配置屬性文件的情況。