我一直在閱讀很多關於測試驅動開發的內容,並決定讓它在一個小項目上發揮作用。作爲參考,我目前正在閱讀「面向對象的軟件,以測試爲指導」。如何爲Mac(Cocoa)應用程序創建端到端測試?
我明白如何單元測試我的應用程序,以及如何單元測試用戶界面的某些部分,但我正在努力設置端到端測試。例如,測試通過整個應用程序的某個路徑會產生正確的輸出(這是我對端到端測試的基本理解)。
沒有必要模擬點擊事件,但需要與UI進行某種連接。
我是否認爲我需要結合使用「邏輯」測試(測試無需啓動應用程序),「應用程序」測試(啓動應用程序測試)以及GHUnit之類的異步功能來完成此操作?
編輯:
閱讀下面的一些問題的答案後,這聽起來像我在尋找功能的終端到終端的測試,但我想我應該給一個測試的例子,因爲我想象它。
- 啓動應用程序。
- 用測試用戶憑證調用登錄功能。 (注意:不一定需要UI自動化)。
- 確認窗口上的標籤顯示「正在登錄...」。
- 成功驗證用戶後,請驗證標籤現在顯示「Welcome,Adam!」。
KIF聽起來像它可以工作,因爲它有步驟來檢查UI元素的變化,它看起來像還有一個Mac OSX分支。我確信我也可以寫一個小班,不斷調查用戶界面以瞭解某些時間後的變化,但我想知道這是否正確。但是,也許我正試圖把我正在閱讀的'正在成長的面向對象軟件,由測試引導'並嘗試將其應用於Cocoa。
另一個更新:
所以我一直在閱讀的建議,到目前爲止,檢查連接到不同的地方,並開始實施的東西,同時還引用了這本書。我認爲我真正想要得到的是Test-Driven-開發部分。在本書中最突出的是,他們從用戶的角度首先描述了他們想要通過驗收測試發生的事情。
我意識到,只要開始編寫方法,就需要進行堅實的單元測試,但我很想首先使用一些UI編寫一些高級驗收測試。我已經開始編寫自己的應用程序「驅動程序」類,使用一些類似於GHAsyncTestCase想法的方法來幫助我實現這一點。這聽起來是否正確/有用/必要?
到目前爲止,我非常感謝所有的評論,他們確實幫助我在自己的腦海中摸索出了自己想要做的事情以及測試的各個方面。我會很快完成這個問題,因爲它變得相當大,所以任何最後的建議是值得歡迎的!
偉大的第一個問題! – logancautrell