2

Linq クエリを実行するメソッドを作成しており、TDD を使用してそれを実行しようとしています。

ただし、クエリにはAny()が含まれるようになりましたが、テストを作成した後にコード内のものを削除または変更して、カバーする必要があるすべてのテストがカバーされているかどうかを確認することがあります。

Any()それから私は楽しみのために変わり始めましたAll()、そして私のテストはまだ合格しました.

次のようにすべての異なるケースをチェックする必要があるかどうか疑問に思っていたので、すべてAll()Any()組み合わせを取得します。

  1. 私のリストにゼロ要素が含まれているとします(All()返されますtrueが、Any()返されますfalse
  2. リストにいくつかの要素が含まれており、述語を満たす要素は 1 つだけであるとします。
  3. 私のリストにいくつかの要素が含まれていて、それらのすべてが述語を満たしているとします。

TDD に関する本を何冊か読んだことがありますが、人々はしばしばコードを「偽造」して、テストが失敗するようにしています。しかし、この場合、それを偽造するために必要以上のコードを書かなければなりません。

4

1 に答える 1

7

解決策は簡単です。すべての可能性をカバーするのに十分なテストがないことは明らかです。ドメインや正確に何をテストしているのかを知らなくても、おそらくテストが必要です

  • 空の
  • 空ではない、すべて満たす
  • 空ではありません、いくつかは満足しています
  • 空ではない、満たしていない
于 2013-08-01T20:25:22.500 に答える