[Seasar-user:5952] Re: [S2Unit]Test 実行単位で唯一のContainerにはできないでしょうか?

kubo [E-MAIL ADDRESS DELETED]
2007年 1月 30日 (火) 01:32:16 JST


久保(jflute)です。

> > 確かにそれはそれで必要なのですが、
> > 現在自分が携わっているProjectでのUnitTestの方針では、
> > 
> >   Componentは極力Pojoとして作成し、
> >   UnitTestではそのPojoを new して必要なAttributeを
> >   TestMethod内で setして、TargetのMethodを呼び出してAssertする。
> >   (Mockに関しては、UnitTest内で new して set してあげる)
> > 
> > というやり方をしています。
> > 
> そのような使い方をする場合は、直にTestCaseを
> 継承すれば良いのではないでしょうか。

すいません、説明が足りてませんでした。
具体的にはTeedaのPageクラスなのですが、
このクラスを new して必要なAttributeをSetしてTestしています。
そのとき、必要なAttributeを全てMockにしているわけではなく、
最低限DBアクセスだけは本番と同様の動きをさせたいので、
Dao周りはMockは利用していないのです。
なので、Containerを必要としています。
(そもそもUnitTestのやり方からズレているかもしれませんが...)

> > 現状の「Methodの呼び出し毎生成・破棄」の目的は、
> > Mockを利用してのTestを実現するためかと思います。
> > (Method毎にIncludeするDiconが変わる)
> > 
> というより、もともとのJUnitの哲学(?)である
> あるテストメソッドが別のテストメソッドに極力影響を
> 与えないようにするためです。

なるほど、了解です。
確かに実行単位のInstanceの再利用はいざ間違った使い方をしたときは
大変なことになりますからね。。。

開発運用としては、CommitするClassのTestだけを動かすことにして、
他のClassへの影響などはNightlyの一括Testで担保を取るようにします。


> 全体のテスト時間が掛かってしまうという悩ましい問題には、例え
> ばCIツールを用意するというアプローチはどうでしょうか?

恥ずかしながら、その存在を知りませんでした。
ちょっと興味持って探って行きたいと思います。
ありがとうございます。






-- 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo   <[E-MAIL ADDRESS DELETED]>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/





Seasar-user メーリングリストの案内