私は次のことを行う統合テストを持っています:
@ContextConfiguration( locations={..path to xmls..} )
class IntegTestBase{
--- some field initializations; ---
}
class MyIntegTest extends IntegTestBase{
@Test
public testingMethod(){
MyClass obj = new MyClass();
obj.methodToBeTested();
---- some assertions ----
}
}
class MyClass{
@Autowired
Something obj1;
public int methodToBeTested(){
--- Somecode ---
}
}
上記のコードでは、テストケースを実行すると、MyClassオブジェクトが作成され、すべてのフィールドが自動配線されると思いました。しかし、何が起こったのかというと、テストの実行時にすべての自動配線フィールドがnullでした。Bean定義が見つからないことについては文句を言わなかったので、テストコンテキストがここに表示されていると思います。しかし、なぜそれが配線されていないのか理解できません。
一方、テストクラスでこれらのフィールドを作成して自動配線し、作成したオブジェクトに設定することができます。誰かがフィールドがnullである理由を知ることができますか?