[Seasar-user:16506] Re: インスタンスの差し替えと、MockInterceptorを使用したテストについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 12月 12日 (金) 20:00:05 JST
小林 (koichik) です.
Date: Fri, 12 Dec 2008 18:08:21 +0900
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16504] インスタンスの差し替えと、MockInterceptorを使用したテストについて
> public class XAction {
> @Resource
> private XService xService; … (1)
> }
>
> public class XService {
> }
>
> public class SubXService extends XService {
> }
>
> というように上記の3つのクラスがあった場合
> 普通の構成で動作させると(1)にはXServiceのインスタンスが
> インジェクションされると思いますが、これをSubXServiceを
> インジェクションするようにすることは可能でしょうか?
@Resource
private XService subXService;
または
@Resource(name="subXService")
private XService xService;
とすれば可能です.
> 2、MockInterceptorを使用してテストを行った場合に、
> 実行したメソッドの戻り値をオブジェクトにしたいと
> 思っているのですが、これをdiconファイルで記述
> することは可能でしょうか?
以下のように指定できます.
<component class="...">
<aspect>
<component class="org.seasar.framework.aop.interceptors.MockInterceptor">
<initMethod name="setReturnValue">
<arg>"someMethod"</arg>
<arg>
<!--戻り値となるオブジェクトの定義 -->
<component class="...">
</component>
</arg>
</initMethod>
</component>
</aspect>
</component>
<component> には通常通り <property> や <initMethod> を
指定することができます.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内