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