[seasar-dotnet:880] Re: [S2Unit.NET][要望]テストクラス単位でdiconファイルを指定したい

koyak [E-MAIL ADDRESS DELETED]
2008年 6月 13日 (金) 13:33:18 JST


上谷さん

小谷です。
横から失礼致します。

>ちょっと確認したいんですが、
>・テストメソッドでIncludeした場合、親コンテナと子コンテナ間にわたるインジェクションは行われない、
>・インジェクションしたい場合はSetUpメソッドでIncludeする、
>ということでいいでしょうか?

はい。おっしゃる通りと思われます。

S2Unitを使ってテストを実行すると、大雑把に以下の順番で処理が呼ばれます。
(参考:Seasar.Framework.Unit.S2FrameworkTestCaseRunner.Runメソッド)
1.Setupメソッド
2.S2Unitで使っているS2Containerの初期化
3.テストメソッド
4.TearDownメソッド

そのため、SetupメソッドでコンテナにIncludeを行っておくと
2の処理でインジェクションなどが行われますが、
テストメソッドでIncludeした場合は引数のdiconファイルに書かれた内容が
コンテナにSeasarのコンポーネントとして登録されるのみとなります。

>http://s2container.net.seasar.org/ja/s2unit.html#fieldBinding
>最初のテストがパスしません。SetUpメソッドを追加して、そこでTest.diconを
>Includeすればパスします。

確かにテストメソッド中でIncludeが行われていますね。
大変申し訳ないのですが、こちらの方は別途調査させて下さい。

2008/06/12 10:53 Toru Uetani <[E-MAIL ADDRESS DELETED]>:
> 藤井さん、おはようございます。上谷です。
>
>> ・App.diconの中の<component>タグの行を消す。つまり空にする。
>> ・TestクラスにSetUpメソッドを追加し、その中でApp3.diconをIncludeする。
>> ・IncludeTestメソッドのIncludeメソッドの引数をApp3.diconに変更する。
>> ・AutoBindingTestの中のIncludeしている行を削除する。
>> とすれば、テストが通りました。
> 回答ありがとうございます。テストにパスすることを確認しました。
>
> ちょっと確認したいんですが、
> ・テストメソッドでIncludeした場合、親コンテナと子コンテナ間にわたるインジェクションは行われない、
> ・インジェクションしたい場合はSetUpメソッドでIncludeする、
> ということでいいでしょうか?
>
>
> あと、ドキュメントについてですが、
>http://s2container.net.seasar.org/ja/s2unit.html#fieldBinding
> 最初のテストがパスしません。SetUpメソッドを追加して、そこでTest.diconを
> Includeすればパスします。
>http://s2container.net.seasar.org/ja/s2unit.html#init
> サンプルソース内でSetUpメソッドとTearDownメソッドについて記述されて
> いますが、本文で言及がないため分かりずらいです。
> もしかしてJava版では常識なんでしょうか?
> 自分は.NET版しかしらないため、記述してもらえると助かります。
>
> --
> ┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏
>
>  ┏━━━┓ 上谷 徹(Toru Uetani)
>  ┃\_/┃ mail:[E-MAIL ADDRESS DELETED]
>  ┗━━━┛
> ┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内