[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 メーリングリストの案内