0

春に注入の依存性をテストしたいと思います。

私はクラスを持っています:

 public SomeClass {
   @Autowired
   SomeBean bean ;
   public SomeBean getBean(){
     return this.bean ;
   }
 }

私はこのようなテストが欲しいです:

public SomeClassTest {
  SomeClass someClass ;
  @Before
  public void setUp(){
    someClass = new SomeClass() ;
  }                              
  @Test public testBeanWired(){
    assertNotNull(someClass.getBean()) ;                                                  
  }                          
}

テスト構成ファイルを使用してContextConfigurationを試しましたが、テストが失敗しました。テストで@Autowiredを使用したくない、クラスのインスタンスを作成したいので、Beanが自動的に自動配線されます。

4

1 に答える 1

3

これは、Beanに@Configurationの注釈が付けられており、バイトコードがインストルメントされている場合にのみ可能です。それ以外の場合、Springによって作成されたBeanのみが自動配線されます。を使用して作成されたBeanではありませんnew。Springには、オブジェクトを作成したこと、およびオブジェクトに依存関係を挿入する必要があることを知る方法がないためです。

これが依存性注入の基本原則です。オブジェクトは、ユーザーではなく、コンテナーによってインスタンス化および注入されます。

于 2013-03-25T22:58:28.290 に答える