10

以下を使用して、ユニットテストメソッドでサービスを簡単に挿入できることを知っています。

defineBeans {
   someService(SomeService)
}

しかし、サービス内にサービスを注入する必要がある場合 (サービスsomeServiceはそれ自体を別のサービスと呼びますsome2Service)。上記のコードでテストを実行すると、次のメッセージが表示されます。

Message: Cannot invoke method someMethod() on null object

単体テストでサービスをサービスに注入することは可能ですか?

ありがとう。;-)

4

2 に答える 2

9

単体テストでSpring Beanを使用するには、次の手順を実行する必要があります:

  • テストが依存するすべてのサービスと他の Bean をdefineBeansクロージャーに含めます。
  • 他の Bean を注入する必要がある Beanのautowireプロパティを に設定します。true

例えば:

defineBeans {
    someService(SomeService) { bean ->
        bean.autowire = true
    }
    some2Service(Some2Service)
}
于 2012-09-06T16:26:36.470 に答える
0

refを使用してサービスであるメンバー変数を設定できます

MyService(MyProvider) {
        userDetailsService = ref("userDetailsService")
        springSecurityService = ref("springSecurityService")
        userService = ref("userService")
    }

それが役立つことを願っています

于 2012-09-06T15:57:27.607 に答える