2

以下は、dbunit について私が本当に嫌いな点です。

1) 挿入の正確な順序を指定することはできません。これは、dbunit が挿入を XML ファイルで定義した順序ではなく、テーブル名でグループ化することを好むためです。これは、他のテーブルの他のレコードに依存するレコードがある場合に問題になるため、テスト中に外部キー制約を無効にする必要があります...テスト中にこれらの外部キー制約が本番環境で発生するため、実際には最悪ですそれらを認識してください!

2) 彼らは、xml 名前空間を使用して xml を定義することを強要しているように見えます...正直なところ、これを行うのは面倒です。名前空間のない data.xml が好きです。できます。しかし、彼らはそれを非推奨にすることに非常に熱心です。

3) テストごとに異なる xml ファイルを作成するのは難しいため、実際にはアプリ全体のデータを作成することが推奨されます。残念ながら、データのサイズが大きくなり、物事が絡み合うと、このプロセスも少し肥大化します。すべてのテストにわたって大量のテスト データをコピー/貼り付けすることなく、テスト データをチャンクに分割するためのより良い方法が必要です。

4) 大きな xml ファイルで ID 参照を追跡することは不可能です。130 のドメイン クラスがある場合、当惑するだけです。このモデルは単にスケーリングしません。

Spring/Hibernate スペースで、肥大化が少なく、より優れたものはありますか? db unit は歓迎されなくなったので、もっと良いものを探しています。

4

1 に答える 1

0

1) 制約を遅延可能(Oracle ドキュメント)として定義できるかどうかを確認すると、チェックはトランザクションのコミットまで延期されます。

その他については、Factory アプローチの使用を検討してください。つまり、オブジェクトを作成し、テスト目的で DB に挿入する方法を知っている Factory クラスを使用します。テストが機能するために挿入/更新コードに依存しているため、これはテストの目的の一部を無効にする可能性があります。

十分にシンプルにすれば、ファクトリ アプローチは問題なく機能することがわかりました。

于 2011-03-23T18:13:12.870 に答える