天天看點

《Android應用開發攻略》——3.2 在Android中進行TDD

kailuo wang

3.2.1 問題

模拟支援的缺乏,使得在 android開發中進行測試驅動的開發(test-driven development,tdd)難以實作。

3.2.2 解決方案

建立兩個測試項目:一個用android工具建立,用于與ui相關的測試,另一個是标準的單元測試項目,用于支援模拟的測試。盡可能将你的邏輯提取到可以進行單元測試的類中。

3.2.3 讨論

在官方文檔中,與測試相關的文章大部分都是關于ui測試的。要求必須建立一個android測試項目,以便對其進行插裝和部署,在模拟器環境中測試該應用。測試與ui相關的邏輯很酷而且非常必要,但是這也使模拟變得非常困難。對此有一些解決方案,但是這些方案都有一定的專用性,可能非常費力。如果你後退一步并從較高的層次上去看待這些測試,就會發現它們更像內建測試,而不是純粹的單元測試。這些測試運作的時間更長,需要準備完整的環境。沒有模拟,它們可能需要測試比功能單元更多的内容。所有這些局限性都證明了,必須為這些測試建立不同于正常單元測試“項目/子產品”的獨立“項目/子產品”。我們可以将這種由android工具建立的“項目/子產品”稱為xyz ui測試項目,僅負責測試ui邏輯。然後,你可以和往常一樣建立另一個标準單元測試項目,我們稱它為xyz單元測試項目。在這個項目中你可以使用自己喜愛的工具,包括模拟架構。而且,它隻測試非ui相關邏輯,避開了所有測試友好性較差的android ui api。現在,你所需要做的就是盡可能地将邏輯從令人厭惡的ui相關類中提取出來,快樂地進行tdd。

繼續閱讀