1

私の統合テストの大部分はAbstractTransactionalSpringContextTests、データベースにコミットする代わりに、スプリングを使用してロールバックを行います。これは正常に機能しますが、コミット段階まで外部キー制約が適用されないため、テスト戦略に穴があります。

どうすればテストを改善できますか?

テストの実行に時間がかかるため、可能であればコミットを避けたい (多数ある場合)

4

1 に答える 1

0

セッションをフラッシュするなど、データベースにコミットしたくないことは理解していますが、この目的でインメモリ sqlite データベースを使用すると、パフォーマンスが許容される場合があります。

NHibernate (Fluent NHibernate を使用) とインメモリ sql-lite データベース ( how to here )を使用して単体テストを実行しました。完全なスキーマではなく、データベースの関連部分のみを作成する限り、これは非常に高速に機能します。

クラスを簡単に拡張AbstractTransactionalSpringContextTestsして db にフラッシュできます。spring.net ドキュメント 22.2.10またはspring.net フォーラムのこのスレッドを参照してください。テスト スイートでこれをすばやく機能させることができるはずです。

于 2011-06-10T15:22:07.980 に答える