私は TDD を行っていますが、単体テストの編成はかなり緩いものでした。私は、次のストーリーまたは機能のチャンクを表すファイルから始めて、それを機能させるためのすべての単体テストを作成する傾向があります。
もちろん、新しいクラスを導入する場合は、通常、そのクラス用に個別の単体テスト モジュールまたはファイルを作成しますが、テスト自体をより高いレベルの構造に編成することはしません。その結果、私はコードを速く書くことができ、実際のプログラムはかなり適切に構造化されていると思いますが、単体テスト自体は「乱雑」です。特に、それらの構造は発生過程の系統発生を再現する傾向があります。ときどき、コードの怠惰をテストの怠惰と交換しているように自分自身を見ていることがあります。
これはどれほど大きな問題ですか?単体テストを継続的にリファクタリングおよび再編成して、全体的な構造を改善しようとしているのは誰ですか? これに関するヒントはありますか?テストの全体的な構造はどのように見えるべきか。
(ここで尋ねた「関数ごとのアサーションの数」の質問はあまりしていないことに注意してください:関数/メソッドごとにいくつのユニットテストを書く必要がありますか?私は全体像について話している。)