私は新しいアプリケーションを開発し、可能な限り忠実に「テストファースト」開発に固執しようとしています。私はいくつかの既存の単体テストを無効にする効果を持つ機能を実装/変更する必要がある状況に自分自身を見つけています。私はこれにどのように対処すべきですか?私はそれを見ると、3つのオプションがあります。新しい機能によって既存の単体テストが無効になる場合はどうすればよいですか?
Updateまたは
実装し、機能を実装(これ以上、必要に応じての追加)新しい機能要件を満たすためにすべて既存のテストを削除第一の特徴、失敗を確認するためにテストを実行し、更新またはいずれかを削除(これ以上必要に応じての追加)テストに失敗しまし
古いのを見るためにすべてのテスト を実行し、 は機能を実装し、新機能のための新しいテストを追加します。 ESが必要
として古いテストに失敗し、削除または 更新最初のオプションは、TDDに接着するが、耐え難いほど非生産することができます。 2番目のオプションが最も簡単ですが、最初に忠実にテストするのではなく、適切に "カバーされない"こともあります。 3つ目の選択肢は両方の妥協点であり、ある程度は魅力的ですが、古いものを更新したばかりのテストを書き直すリスクがあります。
私はここに明確な戦略があるとは思わない。あなたはこれらの状況で何をしていますか?
これは、私が最終的にゴミ箱に入ったすべてのコードを考えたときに私がしていることです:http://www.youtube.com/watch?v=tgBI3-q5COM – Will
これは、正しく)いくつかの単体テストを破る可能性があります。 1つか2つかもしれないが、いくつか?ユニットテストが重なり過ぎる可能性はありますか? – Beta
@Beta、実装に追加の依存クラスが必要であるという要件を追加するとします。他のテストでは従属オブジェクトの模擬実装が提供されていないので、実行時にヌル参照例外群が得られます。次に、戻って設定コードを修正して渡す必要があります。 – tvanfosson