Spring Beanがインジェクションされているサービスの統合テストを作成しようとしています。春の豆はresources.groovy
で定義されています。私のサービスが使用しているBeanは、統合テストでは注入されていないようですが、grails run-app
を実行すると正常に注入されます。ここResources.groovyからSpring BeansをGrails 3サービスの統合テストにインジェクトします。
は最小障害の例である:
grails-app/conf/spring/resources.groovy
beans = {
myBean(Object){}
}
grails-app/services/MyService.groovy
class MyService {
def myBean
def serviceMethod(){
myBean.class.simpleName
}
}
grails-app/src/integration-test/groovy/MyServiceSpec.groovy
@Integration
class MyServiceSpec extends Specification {
def myService
when:
def myBean = myService.myBean
then:
myBean != null
}
のGrailsのバージョン情報:
$ grails -v
| Grails Version: 3.1.9
| Groovy Version: 2.4.7
| JVM Version: 1.8.0_92
更新:
春がうまく他のサービスを注入するようです。 MyService
の中に別のサービスを宣言すると、それは注入されます。
class MyService {
def myBean
def myOtherService
def serviceMethod(){
myBean.class.simpleName
}
}
あなたが持っているもののように見えるべきではありません。テストケースを追加し、 'when'と' then'を使います。 – dmahapatro
「インテグレーションは、あなたが持っているもののようにはならない」とはどういう意味ですか?私のテストケースには、その時とその後があります... –
こんにちは。この問題は運がいい?それを動作させる方法や回避策を見つけましたか? – Seagull