[Seasar-user:16371] Re: [s2unit] deleteDb で エラー (SQLServer)
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2008年 11月 24日 (月) 12:25:14 JST
中村(taedium)です。
> setUpXxx()
> ・DBをDataSetにバックアップ
> ・テストデータ用のExcelを流し込み(replaceDb)
>
> testXxx()
>
> tearDownXxx()
> ・テストデータを削除
> ・バックアップしたDBを元に戻す
>
> という構成でテストを作ったのですが、
> tearDownXxx() のところで、
>
> 「dataSourceがnullあるいは空であってはいけません」が発生してしまいます。
>
> setUpxxx(), tearDownXxx() の先頭で、setupDataSource()を呼ぶようにしているのですが
> 上記エラーが発生します。
setUpxxx()やtearDownXxx()では、dataSourceのような
S2コンテナに管理されるコンポーネントを利用できません。
(S2コンテナが利用できる状態にありません)
テストメソッドの名前をtestXxxTxというように「Tx」を
最後につけると、トランザクションが自動でロールバックされます。
この機能を使えば、テストメソッドの前後で
テストデータのバックアップやリストアなど行う必要がありません。
同等の処理は、「Tx」つきメソッドと
readXlsAllReplaceDb()を使って次のように記述できます。
public void testXxxTx() {
readXlsAllReplaceDb("aaa/bbb/ccc.xls");
// テスト処理
...
}
--
Toshihiro Nakamura
Seasar-user メーリングリストの案内