[Seasar-user:5109] Re: [S2Unit]コンテナをcreateするクラスのテストについて
Minoru Taki
[E-MAIL ADDRESS DELETED]
2006年 11月 15日 (水) 08:43:35 JST
瀧です。
ご回答ありがとうございます。
> Dao を自発的に「取りに行く」のではなく,「セットしてもらう」
> のが DI (依存性注入) のやり方です.
> こうすることで,BusinessTest#testCase1Tx() で開始された
> トランザクションの元でで BusinessImpl が Dao にアクセス
> できます.
トランザクション・Daoの扱い方を勘違いしていたようです。
(勉強不足でした。)
教えていただいた方法で実現できました。
ありがとうございました。
----- Original Message -----
From: "Koichi Kobayashi" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, November 14, 2006 9:30 PM
Subject: [Seasar-user:5104] Re: [S2Unit]コンテナをcreateするクラスのテストについて
> 小林 (koichik) です.
>
> Date: Tue, 14 Nov 2006 19:50:26 +0900
> From: "Minoru Taki" <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:5103] [S2Unit]コンテナをcreateするクラスのテストについて
>
>> コンテナを新たにcreateするクラスではj2ee.requiredTxを設定しても
>> 別トランザクションとなるようで、正しくテスト結果が得られません。
>> これは仕様でしょうか?(使い方が間違っているのでしょうか?)
>> それとも、readXlsAllReplaceDbやreadXlsWriteDBメソッドは
>> DAOのテスト用(=コンテナをcreateするクラスでは利用できない)
>> ということなのでしょうか?
>
> コンテナを作成しないで,BusinessImpl を次のように
> してください.
>
>> -- BusinessImpl.java ----------------------------------------------------------------------
> package hoge;
>
> import java.util.ArrayList;
>
> public class BusinessImpl implements BusinessIF{
>
> SampleDao dao;
>
> public void setSampleDao(SampleDao dao) {
> this.dao = dao;
> }
>
> public ArrayList execSearch(BaseDataIF param) throws Exception{
> ArrayList list;
> list = dao.select((SampleDto)param);
> return list;
> }
> }
>
> Dao を自発的に「取りに行く」のではなく,「セットしてもらう」
> のが DI (依存性注入) のやり方です.
> こうすることで,BusinessTest#testCase1Tx() で開始された
> トランザクションの元でで BusinessImpl が Dao にアクセス
> できます.
>
>
>
> --
> <signature>
> <name>Koichi Kobayashi</name>
> <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内