[Seasar-user:11211] Re: [S2JUnit4]@Mockアノテーションの使い方について
Tetsutaroh Satoh
[E-MAIL ADDRESS DELETED]
2007年 10月 23日 (火) 15:02:23 JST
佐藤徹太郎です。
中村さん、ご回答ありがとうございました。
申し訳ありませんが、もう一つ質問があります。
returnValue要素に変数を指定する場合は、どのように書けばいいのでしょうか?
例えば、int型の変数iを指定する場合、
テストクラスに
private int i;
と、定義して、
returnValue = "i"
と、したのですが、例外がスローされてしまいます。
ご教授いただけたらありがたいです。
よろしくお願いいたします。
-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Toshihiro Nakamura
Sent: Tuesday, October 23, 2007 12:26 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11210] Re: [S2JUnit4]@Mockアノテーションの使い方につい
て
中村(taedium)です。
> S2JUnit4で@Mockアノテーションの target要素、pointcut要素、returnValue要素
に
> 何を指定すればいいのかよくわからないのですが、
> 私が一応認識していることを書きますと、
>
> target = モックをつくるDaoのクラス
>
> pointcut = Daoのメソッド名
>
> returnValue = Daoのメソッドが返す戻り値
>
> ということでいいのでしょうか?
だいたい合っています。
@Mockでは、コンポーネントにMockInterceptorを適用します。、
targetにはインタセプターの適用先となるコンポーネントのクラスを指します。
クラスで一意に特定できない場合はtargetNameを使ってください。
(内部的にはtargetもしくはtargetNameに指定された値
をキーとしてS2ContainerからgetCompornentしています。)
pointcutには正規表現を使うこともできます。
> それと、returnValue要素にentityのクラスを指定したいのですが、例えば、
> returnValue = "'Book'"
> としても
> java.lang.String
> として、扱われてしまうようです。
> どのように指定すればいいのでしょうか?
returnValue = "new hoge.Book()"
としたり
@Mock(target = BookDao.class, pointcut = ".*", returnValue = "createBook()")
public void test() {
...
}
public Book createBook() {
・・・
return book;
}
としてエンティティを生成するメソッドを呼ぶこともできます。
ただし、returnValueの中でメソッドを呼ぶ場合はそのメソッドは
publicとして宣言しておく必要があります。
--
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内