2012-03-11 80 views
2

我不知道TDD是否可以幫助我編程。但是,我不能簡單地使用它,因爲我的大多數功能都需要大型網絡對象(許多節點和鏈接)並對它們進行操作。或者我甚至讀取SQL表格。 其中大多數時間它不是真正的中斷邏輯(即不是語義錯誤),而是重構後的某些函數調用:)在Python中使用大數據的TDD

您認爲我可以使用TDD處理這類數據嗎?你對此有什麼建議? (模擬框架等?) 我會以某種方式獲取真實數據,使用函數處理它,驗證輸出,將輸入/輸出狀態保存到某種模擬對象,然後在其上編寫測試?我的意思是,如果我不能提供手工輸入數據。

我還沒有開始TDD還,所以引用是歡迎的。

+0

看到類似(但不完全相同)的問題:http://stackoverflow.com/questions/842476/applying-tdd-when-the-application-is-100-crud – Raedwald 2012-03-11 17:03:49

回答

1

我的大部分功能需要龐大的網絡對象

不知道你的代碼什麼,這是很難評估這種說法,但是你可能要重新設計你的代碼,以便更容易進行單元測試通過將其分解成更小的方法。儘管一些高級方法可能會處理那些麻煩的大對象,但也許低級方法不會。然後您可以單元測試這些低級方法,依靠集成測試來測試高級方法。


編輯:

之前獲得與TDD交手,你可能會想嘗試只需添加一些單元測試。

3

你已經差不多了它。數據庫測試是從一個乾淨的,最新的模式開始,並將少量已知的固定數據添加到數據庫中完成的。然後,您可以在這個受控環境中執行操作,知道您期望看到的結果。

使用網絡對象有點複雜,但通常包括對它們進行存根(即完全刪除內部功能)或對它們進行模擬,以便返回一組固定的已知數據。

總是有一種方法來測試你的代碼。如果證明有困難,通常需要重新考慮代碼設計。

我不知道任何Python特定的TDD資源,但TDD上的一個很好的資源是Coad的「測試驅動開發:實用指南」。它使用Java作爲語言,但原理相同。