2009-06-02 5 views
4

私はscalaからspringを使用しており、trait/superclassを持つサービスを注入しようとすると問題に直面しています。@Autowired with scalaを使用する

これは私のコードです:

trait MyServiceHolder{ 
    var myService:MyService = null 

    @Autowired 
    def setMyService(ms:MyService) = myService = ms 
} 

@RunWith(classOf[SpringJUnit4ClassRunner]) 
@ContextConfiguration(Array("file:src/main/webapp/WEB-INF/application-context.xml")) 
class MyConcreteClass extends MyServiceHolder{ 

    def hello() = myService.hello() 

} 

これは動作します:

@RunWith(classOf[SpringJUnit4ClassRunner]) 
@ContextConfiguration(Array("file:src/main/webapp/WEB-INF/application-context.xml")) 
class MyConcreteClass{ 

    var myService:MyService = null 

    @Autowired 
    def setMyService(ms:MyService) = myService = ms 

    def hello() = myService.hello() 

} 

問題はmyServiceという私のテストケースではヌルであるということです。バイトコードレベル(クラスファイル)を見ると、すべての注釈が存在します。何か案は?

答えて

3

テストを実行するときにSpringによってBeanを設定するには、Spring TestContext Frameworkのフォームを使用する必要があります。

+0

私はjunitランナーを使用しています。それを私のコードに加えました。 – MrWhite