0

次のように、構成属性を使用して文字列に連結するサービスをテストしています。

 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 演算子を使用できないのはなぜですか?!

どんな助けでも大歓迎

ジョナス

4

3 に答える 3

1

これは、構成変数を定義していない場合に表示されるエラーです。test.directory別の環境で を定義した可能性がありますが、その環境では定義していませんtest

単体テストでは、ドンの回答が示唆するように mockConfig を使用する必要がありますが、統合テストでは、アプリを実行するときと同じように grails 構成フレームワークを使用できます。

于 2011-10-17T17:38:25.813 に答える
0

わかりました。問題が見つかりました...使用する場合は、すべての文字列属性を引用符で囲む必要がありますが、mockConfigoutconfigプロパティファイルではそうではありません。

于 2011-10-18T02:45:47.760 に答える
0

GrailsConfig.config.test.directoryString を返す必要があると思いますが、ConfigObject代わりに a を返しています (これは + 演算子をオーバーロードしません)。統合テストで使用GrailsConfigしたことがないため、このコードが機能するかどうかはわかりません。

より良いアプローチは、代わりにmockConfigを使用して構成値をモックすることです。

于 2011-10-17T08:36:33.370 に答える