[Seasar-user:16609] Re: S2UnitのMockInterceptorについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 1月 7日 (水) 18:30:12 JST
小林 (koichik) です.
Date: Wed, 7 Jan 2009 17:48:16 +0900
From: aaa aaa <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:16608] S2UnitのMockInterceptorについて
> MockInterceptor mi = new MockInterceptor();
> mi.setThrowable("testMethod", new Exception());
> Logic mockMethod = (Logic) mi.createProxy(Logic.class);
>
>
> try{
> mockMethod.exec();
> } catch{
> e.printStackTrace();
> }
>
> execメソッドからtestMethodを呼び出しています。
>
> 自分のイメージでは、testMethodがExceptionを発生させ、execで例外処理が発生
> するイメージですが、そもそもMockInterceptorの使用用途として間違ってますでしょうか?
testMethod() だけでなく exec() も (public であれば)
MockInterceptor の対象となるため,Logic クラスの
exec() は実際には呼び出されません.
exec() に対する動作は設定されていないため,
MockInterceptor はデフォルトの動作として null を
返します.
# exec() が void なら戻り値は捨てられます.
exec() を呼び出すテストであれば,exec() に期待する
動作を設定してください.
MockInterceptor mi = new MockInterceptor();
mi.setThrowable("exec", new Exception());
--
<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 メーリングリストの案内