2013-05-11 21 views
2

經過大量閱讀,學習示例和進行簡單的課堂測試,我希望使用TDD創建我的第一個簡單的現實生活應用程序。使用TDD(BDD)開發整個應用程序(不是一個類)?

我的應用程序應該有以下行爲:

  • 它沒有用戶界面的控制檯應用程序
  • 它將從某些URL從
  • 提取一些數據下載一個JSON(這表示一個數組)此陣列
  • 使用第一步中的數據下載另一個Jsons
  • 將所有這些數據以指定格式傳遞到文件中。

其實這個應用程序從某個網站拉出一個地區和城市的名單。

我能夠執行重構,知道什麼是低耦合等,但經過多次嘗試,我意識到我完全不知道如何使用TDD整個應用程序設計。

我使用TDD構建這個特定應用程序的第一步是什麼?什麼是基礎,將成長爲完整的應用程序?

我使用PHP,但這並不重要,因爲我不需要代碼示例。只是一個想法,理想情況下,這個想法如何體現在我的具體情況。我應該實施哪些具體的第一次測試?爲什麼?

我覺得有很多人很想知道答案。非常感謝TDD傢伙!

+1

這不是一個論壇 – 2013-05-11 15:17:20

+0

@venkat:同意,但您的評論並不能幫助誰可能不知道堆棧溢出是如何工作的一個新的用戶 - 這將是更好的,至少說明你的意思。我認爲這個問題可能會過於漫不經心,但有必要詳細說明這個問題。所以,雖然你自己是一個新用戶,但是要盡力抵制snark的潮流,並且考慮一些問題是否應該是值得留意的邊緣案例。 – halfer 2013-05-11 15:23:03

+0

@velvet:vencat提到的是常見問題中的條款,它不鼓勵話語問題。我認爲這足夠讓人覺得有意思了,但請記住,在這裏首選_specific_技術問題。 – halfer 2013-05-11 15:24:13

回答

2

測試驅動設計從測試計劃開始。測試計劃的第一部分不涉及任何方式的代碼;它只考慮確定一個成功的解決方案的樣子。在你的例子中:調用應用程序將創建一個文件,其中包含以下信息...

測試計劃的下一步將更詳細地查看生成的文件。你如何測試該文件的內容格式正確且有效?你如何驗證文件的內容?例如,格式良好的XML文件可以通過任何類型的XML解析器傳遞,而不會出現錯誤報告。可以根據模式驗證有效的XML文件。至此,您不需要編寫任何代碼。創建XML模式,並創建格式良好的測試文件以及對模式有效的測試文件。你的測試過程只會看結果。

下一次剪切涉及生成輸出文件。您的第一段代碼由一些測試工具(用於提供測試數據)和文件生成器組成。您現在可以添加一些正確性測試。例如,創建examplar輸出文件並比較被測文件和示例文件。 diffcmp在這裏是你的朋友,但是如果XML格式阻礙你的工作,你可能需要一點創意。

繼續在輸入鏈上向後移動。創建與上一步中的測試數據相對應的JSON文件。使用合適的現成工具驗證JSON文件的格式和有效性。再次,使用您的測試工具將JSON文件與所需的數據匹配到所需的輸出文件。你在這裏創建/部署的代碼是JSON解析器。

下一階段的相似步驟。首先使用curlwget來獲取JSON文件並將其提供給您的測試工具。不需要代碼,只需要一個命令管道。您將不得不手動構建正確性測試的範例,但格式良好性和有效性測試保持不變。

最後,您的應用程序嵌入curl功能,並且您已經準備好終端到終端的測試了。

+0

非常感謝您提供了這樣一個完整的描述性答案。這是否是正確的共同想法:我們首先使用一些存根數據創建一個產生正確結果的應用程序(創建一個前期測試),然後添加功能,直到應用程序能夠從最初假定的源代碼中獲得此結果爲止? – velvetcat 2013-05-11 17:11:18

+0

漸進式測試,然後是增量式設計和構建,然後重複一遍,是我爲測試驅動設計學習的模式。在我的例子中,TDD的侷限性並不明顯。 – 2013-05-12 00:39:00

相關問題