TDDでカウントダウンタイマークラスを実装するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2459924

  •  20-09-2019
  •  | 
  •  

質問

私は小さなプロジェクトで実際に TDD を行う方法を学んでいます。カウントダウンタイマークラスを作成したいのですが、それをTDD(Red、Green、Refactor)で実装する方法と、デリゲートコールバックもあります。

役に立ちましたか?

解決

正確な質問はわかりませんが、最初にカウントダウン タイマー用のテストを作成する方法を知りたいと思いますか?

その場合は、Start、Stop、または Reset などの主要なテストの 1 つを作成することから始めます。これらはアクション イベントであり、(おそらく) 最初に呼び出すものになります。最初にこれらのテストをコーディングして実行します。彼らはする必要があります 実際にはカウントダウンタイマーを実行できないからです。

次に、カウントダウン タイマーの関数の 1 つにダミー コードを追加します。たとえば、カウントダウン タイマーを開始する Start() 関数を追加します。現時点では関数を空のままにしておきます。テストはまだ続くはずです

次に、現在の残り時間を取得する方法を追加する必要があります。残り時間を確認できる「Remaining」プロパティを追加します。このプロパティを取得し、タイマーを開始して、プロパティが変更されたかどうかを再度確認するようにテストを更新します。テストは次のようにする必要があります プロパティを変更するコードがないため、まだです。

start メソッドを更新してカウントダウン プロセスを開始し、カウントダウン タイマーの内部を更新します。今すぐテストを再実行すると、次のようになります。 価値観が変わってくるから。

さあ、次の時が来ました リファクタリング. 。コードを調べてクリーンアップしてください。可能な限り簡略化してからテストを再実行します。すべてが良ければすべてがうまくいくはずです 次のテストに進むことができます。

それが役立つことを願っています。

他のヒント

一般的に、私はユニットテストではそのようなことをテストするものではありません。代わりに、私は可能な限り小さく、そのコードを維持し、それはメッセージの種類を「今の仕事を」私はそれになりたい時、経過時間、または単に一般的のいずれかで作業を行うクラスを呼び出す必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top