私はspring 3 mvc/securityフレームワークを使用しています。@RunWithを使用しないSpring単体テストの配線依存性
データを読み込むリポジトリへの参照を持つControllerクラスを作成しました。クラスには@Controller
、アノテーションには@Repository
、リポジトリには@Autowired
というアノテーションが付けられています。
しかし、私がユニットテストをしようとすると、autowiredインスタンスはnullポインタ例外をスローします。
ここで私はそれがautowiredなので、それはピックアップするためには春の文脈内にある必要があることを理解しています。しかし、私が@RunsWith()
を使用すると、統合テストになると感じています。私は本当に統合テスト(@RunsWith
を使用)とこのメソッドの単体テストを分けたいと思います。どのように私はこのnullポインタの例外を回避することができます上の任意のアイデア?ちょうど私のコントローラクラスのgetter/setterメソッドは大丈夫作成だろう?:
リポジトリクラス:
@Repository
public class Repository{
....
}
コントローラクラス:
@Controller
public class Controller{
@Autowired
private Repository repo;
....
public String showView(){
repo.doSomething();
}
Testクラス:
通常public ControllerTest {
@Test
public shouldDoTestOfShowView(){
}
}
コントローラでゲッタ/セッタを作成するのがベストプラクティスですか? –