小さなプロジェクトで実際にTDDを行うことを学んでいます。カウントダウン タイマー クラスを作成し、それを TDD (Red、Green、Refactor) に実装する方法と、デリゲート コールバックも必要です。
2 に答える
正確な質問はわかりませんが、カウントダウンタイマーのテストを最初に作成する方法を知りたいと思いますか?
その場合は、Start、Stop、または Reset などの主要なテストの 1 つを作成することから始めます。これらはアクション イベントであり、最初に呼び出すものになります (ほとんどの場合)。これらのテストを最初にコーディングして実行します。実際にはカウントダウン タイマーを実行できないため、赤で表示されます。
次に、カウントダウン タイマーの関数の 1 つにダミー コードを追加します。たとえば、カウントダウン タイマーを開始する Start() 関数を追加します。ここでは関数を空のままにします。テストはまだ赤いはずです
次に、現在の残り時間を取得する方法を追加する必要があります。残り時間を確認できる「Remaining」プロパティを追加します。このプロパティをキャプチャしてタイマーを開始し、プロパティが変更されたかどうかを再度確認するようにテストを更新します。プロパティを変更するコードがないため、テストはまだ赤いはずです。
start メソッドを更新してカウントダウン プロセスを開始し、カウントダウン タイマーの内部を更新します。ここでテストを再実行すると、値が変化しているため、緑色になるはずです。
いよいよリファクタリングです。コードを調べて、クリーンアップします。できる限り単純化してから、テストを再実行してください。すべてが正常であれば、すべてが緑色になり、次のテストに進むことができます。
それが役立つことを願っています。
通常、私は単体テストでそのようなことをテストしません。代わりに、そのコードを可能な限り小さく保ち、必要な時間、経過時間、または一般的な「今すぐ作業を行ってください」という種類のメッセージで作業を行うクラスを呼び出すようにします。