我讀過我應該先寫簡單,基本的測試,然後逐漸向更難的方向發展。我應該爲以下功能編寫哪些測試(按順序)?TDD - 我應該爲這個功能寫什麼測試?
功能List.syncWithList(lst)
- 應該添加不在列表中,但在
lst
- 應刪除列表中沒有的
lst
- 方可更換任何項目的任何物品清單列表中與
lst
- 不同的版本標籤中的項目不應替換列表中與中版本標記相同的任何項目
我讀過我應該先寫簡單,基本的測試,然後逐漸向更難的方向發展。我應該爲以下功能編寫哪些測試(按順序)?TDD - 我應該爲這個功能寫什麼測試?
功能List.syncWithList(lst)
lst
lst
lst
您有您的基本測試列表。你只是提供給我們。至少,你應該測試每個功能需求已經滿足(例如,你在問題中給我們的四點)。
除此之外還有邊緣情況,例如空列表(在一邊和兩邊),相同的列表等等。
開始最簡單的方法是添加以下內容:
然後在解決個別問題時添加更多。
我無法強調這一點:自動化測試!當您只需按下按鈕並查看結果時,您會發現測試變得更容易。每次你發現一個bug時,添加一個可以將這個bug捕獲到上面的測試套件的測試,然後按下按鈕來驗證它。
我們已將我們的測試精確到美術。使用一個命令,就可以完成整個過程,從而吹走數據庫,使用已知數據加載它們,運行我們的測試,將輸出與先前成功的測試等進行比較。
如果我們必須手動完成所有這些工作,那麼我們很快就會拋棄整個想法。通過自動化一切,測試變得輕而易舉。
這是一個很好的答案。我只想補充一點,提問者指出,提問者寫的實際上是很好的測試名稱。你的測試名稱應該被看作是對類的作用和預期行爲的描述。 – kyoryu 2010-07-12 05:22:15
+1用於自動化測試 – 2010-07-12 05:35:47
+1:您已經擁有您的列表。測試一下。 – 2010-07-12 10:08:54
您提供了要測試的事情列表。你還想要什麼? – 2010-07-12 10:09:17