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