テスト駆動開発を実践する初心者として、私はしばしば、データベースへの永続性を単体テストする方法について困惑することになります。
技術的にはこれが統合テスト (単体テストではない) になることはわかっていますが、次の最適な戦略を見つけたいと考えています。
- クエリのテスト。
- インサートのテスト。挿入が失敗した場合、挿入が失敗したことをどのように知ることができますか? 挿入してからクエリを実行することでテストできますが、クエリが間違っていなかったことをどのように確認できますか?
- 更新と削除のテスト -- 挿入のテストと同じ
これらを行うためのベストプラクティスは何ですか?
SQL のテストについて: これが可能であることは承知していますが、NHibernate のような O/R マッパーを使用すると、出力クエリに使用されるエイリアスにいくつかの名前付けのいぼが付けられます。私はそれをテストすることができました。
すべてを放棄して、単に NHibernate を信頼する必要がありますか? それが賢明かどうかはわかりません。