[Seasar-user:16296] [s2-container] あるテストのときだけMockInterceptorを使ったMockに置き換えたいとき
Mitsutaka Sato
[E-MAIL ADDRESS DELETED]
2008年 11月 13日 (木) 21:01:45 JST
佐藤と申します。
いつもお世話になっております。
class HogeService {
@resource
private HogeLogic hogeLogic;
}
HogeServiceのテストケースで、hogeLogicをMockInterceptorを使ったMockに置き換えたいとき、
どのようにすればよいでしょうか?
HogeLogicはlogic.diconに
<component
class="com.hoge.impl.HogeLogicImpl"
instance="prototype">
<aspect>j2ee.requiredTx</aspect>
</component>
のように定義されていて、
mock.dicon に
<component name="mockInterceptor"
class="org.seasar.framework.aop.interceptors.MockInterceptor">
<initMethod name="setReturnValue">
<arg>"getCenterSeq"</arg>
<arg>"9998000001"</arg>
</initMethod>
</component>
<component
class="com.hoge.HogeLogic"
instance="prototype">
<aspect>mockInterceptor</aspect>
</component>
と書いて、
app.diconでは
mock.diconとlogic.diconをincludeしました。
順番を入れ替えてみても、実態(HogeLogicImpl)のほうがセットされてしまいます。
logic.diconをincludeしなければいいだけの話なんですが、他にもたくさん登録されているので。
横着できる方法はないかと。
同じインターフェースを持つComponentの場合、優先される順位とかあるんでしょうか?
スマートな方法がありましたら教えてください。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081113/3abfb95d/attachment-0001.html>
Seasar-user メーリングリストの案内