ダイコンさぷり
この番組は、あなたのダイコン脳を活性化させます。
今日の問題は、id:makotanさんの出題です。
http://d.hatena.ne.jp/makotan/20040611#p2
HogeAimpl extends HogeA
HogeBimpl extends HogeB
のどちらにもダイコンファイル名が埋め込まれています。
HogeBimplをテストのときには、HogeBDummyに置き換えたい。
でもダイコンファイルにはHogeBImplと記述されているので、
どうすればよいのか。
ダイコンファイルのパスをコンポーネントに記述するのを止めます。
コンポーネントでコンテナのインスタンスを取得したい場合は、
setContainer(S2Container container)のメソッドを
実装することで、自動的にDIされます。
次にテスト用のダイコンファイルです。
このファイルをS2TestCaseのsetUp()で読み込みます。
<component class="HogeAImpl"/>
<component class="HogeBDummy"/>
テストケースの中で
public void setUp() {
include("hogetest.dicon");
}
と定義しておけば、S2TestCaseがhogeA_も自動的にDIしてくれます。
private HogeA hogeA_;
これで脳はすっきり(解決)したでしょうか。