テスト駆動開発の初心者として、テストの永続性をデータベースに分割する方法については、しばしば困惑します。ユニットテストの永続性はどのようにして得られますか?
私は技術的には、これは統合テスト(ないユニットテスト)になることを知っているが、私は次のために最善の戦略を知りたい:
- テストを照会します。
- インサートのテスト。それが失敗した場合、インサートが間違っていることをどのように知ることができますか?挿入してからクエリを実行することでテストできますが、クエリが間違っていないことをどのように知ることができますか?
- テストの更新と削除 -
テストのインサートと同じでは、これらを行うためのベストプラクティスは何ですか?テストSQLについて
:私はこれを行うことができることを承知していますが、私はNHibernateのようにO/Rマッパーを使用している場合、それは出力クエリに使用別名でいくつかの命名いぼを添付し、その通りですいくぶん予期せぬことに、私はそれを試すことができるとは確信していません。
私はちょうど、すべてを放棄し、単にNHibernateを信頼する必要がありますか?私はそれが賢明であるかどうかはわかりません。
私はTDDの純粋さをしたことはありませんでしたが、私はTDDのメリットの多くを見ていますが、現実を無視して、あなたのアプリケーションが真実であるかどうかわからない野生でやろうとしている。何度も何度も私に割り当てられた "バグ"が私のコードが動作していないことを知り、私は単体テストを実行し、別の開発者が私のsproc(邪悪な悪魔のsprocs)の全部を踏んだり、私のユニットテストは彼らがシステム全体を破壊したのを見ます。 –