テストに問題があります。いくつかの派手な手順のためのアルゴリズムがあります。このアルゴリズムは、範囲 [-999,999; から乱数を取得します。+999,999]、それをテーブルの ID 番号のように扱い、データベースでいくつかのランダム操作を実行します。これは、乱数分布が正しいことを確認するために、メソッドを何度も呼び出す必要があることを意味します。
TDD を使用してすべてのコードを作成したかった (もう少し学習するため)。
問題は、TDD の原則を念頭に置いてアルゴリズムをテストする方法がわからないことです。
TDD によれば、最初にテストを記述せずにコードを実行するべきではありません。
私が考えている解決策の 1 つは、メイン クラスに debug(text) というダミー メソッドを用意することです。このメソッドは、製品コードでは何もしません。ただし、このメソッドをオーバーロードしてサブクラスを作成し、今回はいくつかの興味深い情報を格納します。この情報は、関数が適切に機能するかどうかを確認するために、後でテストで使用できます。データベース接続はモックされ、何もしません。
別の解決策は、後でテストで使用される、興味深い情報を保存するモック データベース接続を作成することです。しかし、そのような接続を作成するには膨大な作業が必要になるため、時間をかける価値はないと思います。
データベースが適切に変更されているかどうかを確認するために、後で統合テストが行われます。ただし、統合テストは TDD の一部ではありません。
TDD が失敗し、役に立たなかったり、使いづらかったりする場所に行き着いてしまったことがありますか?