2011-07-07 49 views

回答

6

總之,存根(stub)。在單元測試時,爲您的Twitter API調用編寫存根函數,每次只返回相同的數據和響應。畢竟,你並沒有測試Twitter的API。

+0

根據數據庫代碼的作用,內存中的SQLite數據庫對於單元測試也非常有用。 – aggsol

3

當您首先編寫測試(TDD)時,更自然地執行稱爲dependency injection的操作。

在我來描述的 三個簡單的規則條款 測試驅動開發多年:做TDD當Bob大叔實踐three rules。他們是:你是 不允許寫任何生產 代碼,除非它是一個失敗的 單元測試通過。你不允許 再寫一個比 足夠的單元測試失敗;並編譯 失敗是失敗的。您不是 允許編寫更多生產 代碼,而不足以通過 一個失敗的單元測試。

您必須先編寫一個單元測試 ,以獲得您打算編寫的功能 。但通過規則2,你不能寫出非常多的單元測試。由於 因爲單元測試代碼不能編譯 或斷言失敗,您必須停止並編寫生產代碼。 但是,通過規則3,您只能編寫 生產代碼,以使測試 編譯或通過,而不再進行更多操作。

如果你認爲這個,你會 認識到你根本不能寫 非常多的代碼,沒有 編譯和執行的東西。事實上,這確實是重點。在 我們所做的一切,無論是編寫 測試,編寫生產代碼,還是 重構,我們始終保持系統 執行。運行測試之間的時間爲 的訂單爲 秒或分鐘。即使10分鐘太長也不行。

你也可以不與磕碰,我認爲一些流行的磕碰的框架: