[Seasar-user:16370] Re: [s2unit] deleteDb で エラー (SQLServer)

Mitsutaka Sato [E-MAIL ADDRESS DELETED]
2008年 11月 24日 (月) 10:27:05 JST


中村様
お世話になっております。

下記ご教授ありがとうございました。
SqlServerSqlWriterを使うようにしたところ、deleteDbでの問題は発生しなくなったようです。

もう1つ教えていただきたいのですが、
今、トランザクションがきちんとロールバックされているかを確認したいので、

setUpXxx()
・DBをDataSetにバックアップ
・テストデータ用のExcelを流し込み(replaceDb)

testXxx()

tearDownXxx()
・テストデータを削除
・バックアップしたDBを元に戻す

という構成でテストを作ったのですが、
tearDownXxx() のところで、

「dataSourceがnullあるいは空であってはいけません」が発生してしまいます。

setUpxxx(), tearDownXxx() の先頭で、setupDataSource()を呼ぶようにしているのですが
上記エラーが発生します。

どのようにしたらよいか教えていただけますと大変助かります。


2008/11/19 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>

> 中村(taedium)です。
>
> > 主キーは設定されているテーブルなのですが、
> > AutoIncrementのため、Excelからは列を削除していました。
> > (主キーの列がExcelにあると readXlsWriteDb でエラーとなるので。)
>
> SQL ServerのAutoIncrementに対応した
> SqlServerSqlWriterクラスを使うと、
> readXlsWriteDbでエラーになる問題は解決します。
>
> SqlServerSqlWriterを使う方法は2つあります。
>
> 1)テストで利用するdiconファイルに次のように定義する。
>
>  <component class="org.seasar.extension.dataset.impl.SqlServerSqlWriter"/>
>
> 2)テストクラスでgetSqlWrite()をオーバーライドする。
>
>  @Override
>  protected SqlWriter getSqlWriter() {
>    new SqlServerSqlWriter(getDataSource());
>  }
>
>
> 主キーの列をExcelに含めると、
> deleteDb()でもエラーが起きなくなるはずです。
>
> --
> Toshihiro Nakamura
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081124/333a068d/attachment-0001.html>


Seasar-user メーリングリストの案内