私はたくさんの統合テストを持っています。テストで使用するいくつかのユーティリティ メソッドを持つクラスが必要です。ユーティリティ メソッドをすべて静的にすることから始めたので、テストから簡単にハンドルを取得できました。
ただし、grailsApplication.confg のハンドルを取得できるユーティリティ クラスが必要だったので、いくつかの構成を取り込むことができました。これを行うには、ユーティリティ クラスはサービスではないため、クラスを実装しApplicationContextAware
ました。つまり、静的メソッドをインスタンス ベースにする必要がありました。けっこうだ。
ApplicationContextAware にするために、インターフェイスを実装し、次のようにします。
class TestUtils {
def grailsApplication
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// TODO Auto-generated method stub
this.grailsApplication = grailsApplication
}
...
しかし、これが呼び出されることはありません。つまり、ローカルの grailApplication ref が設定されることはありません。
この TestUtility フィールドをサービスにした方が良いですか、それとも何が間違っていますか?