junit テスト ケースの実行時にテスト データを作成したいと考えています。そのアクティビティの一環として、テスト データを作成/削除/更新する一連のデータ フィクスチャとその周りの実装を作成することを選択しました。これらは、すべての Junit クラスの @before および @After メソッドから呼び出されます。@before はテスト データをセットアップし、@after はテスト データを破棄します。
この実装はすべて「テスト」パッケージ内に記述し、メイン クラスを @component としてマークし、これらの新しいクラスを @autowired しました。ただし、junit テストを実行すると、これらの新しいクラスのインスタンスを作成できないため、オートワイヤが機能していないようです。
test-config.xml 内に次の構成を追加する以外に、自動配線の前に何をしなければならないかわかりません
<context:component-scan base-package="test">
</context:component-scan>
Spring 3.x と Junit 4 を使用しています。
- - - - -詳しくは - - - - - - -
//ビジネスの実装:
//ファイルの場所: src/main/java/com/abc/prq
package com.abc.pqr
@Service("myservice")
public class MyService{
}
//Myservice クラスの Junit テスト:
//ファイルの場所: src/test/java/com/abc/pqr
package com.abc.pqr;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/META-INF/spring/test-Config.xml"})
public class MyServiceTest {
@Autowired
private ABC abc;
}
//テスト データを作成/削除/更新するためのデータ フィクスチャ
//ファイルの場所: src/test/java/com/abc/pqr/datafixtures
package com.abc.pqr.datafixtures
@Component("abc")
public class ABC{
public void create(){
}
public void remove(){
}
public void update(){
}
}