0

私はたくさんの統合テストを持っています。テストで使用するいくつかのユーティリティ メソッドを持つクラスが必要です。ユーティリティ メソッドをすべて静的にすることから始めたので、テストから簡単にハンドルを取得できました。

ただし、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 フィールドをサービスにした方が良いですか、それとも何が間違っていますか?

4

1 に答える 1