簡體   English   中英

如何在TDD中實現倒數計時器類?

[英]How to implement countdown timer class in TDD?

我正在學習在小型項目中進行TDD的實踐。 我想創建一個倒數計時器類,如何在TDD(Red,Green,Refactor)中實現它,並且它還具有委托回調。

我不確定您的確切問題,但我想您想知道如何為倒數計時器首先編寫測試?

如果是這樣,請首先編寫主要測試之一,然后說“開始”,“停止”或“重置”。 這些是您的動作事件,將是您最先調用的事件(最有可能發生)。 首先對這些測試進行編碼並執行。 它們應為紅色,因為它們實際上無法運行倒數計時器。

然后將虛擬代碼添加到倒數計時器中的功能之一。 例如,添加Start()函數以啟動倒數計時器。 現在將該功能留空。 測試應該仍然是紅色的

現在,我們需要添加一種方法來獲取當前剩余時間。 添加“剩余”屬性,我們可以在其中檢查剩余時間。 更新測試,使其捕獲該屬性,啟動計時器,然后再次檢查該屬性以查看其是否更改。 由於我們沒有更改屬性的代碼,因此測試仍應為紅色

更新啟動方法以啟動倒計時過程,並更新倒數計時器的內部。 現在重新運行測試,由於值正在更改,因此應為綠色

現在該重構了 查看您的代碼並清理。 簡化您可以使用的位置,然后重新執行測試。 如果一切順利,則所有內容應為綠色,然后您可以繼續進行下一個測試。

希望有所幫助。

通常,我不會在單元測試中測試類似的東西。 取而代之的是,我將代碼保持得盡可能小,並讓它調用可以完成工作的類,或者是我希望的時間,已用的時間,或者只是一般的“立即開始工作”之類的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM