2016-03-01 71 views
1

我新來iOS開發。我想編寫單元測試,它使用的SDK,其中在認證方法的形式爲一個應用程序:iOS XCtest訪問應用程序視圖控制器/ UI

(void)authenticate:(UIViewController *)presentingViewController clearCookies:(BOOL)clearCookies completionBlock:(AuthCompletionBlock)completionBlock. 

對用戶進行認證,嵌入式Web瀏覽器需要在UIViewController打開(在方法中傳遞參數)。單元可以測試訪問應用程序UI嗎? 如何確保瀏覽器打開,用戶通過應用程序UI進行身份驗證,然後執行單元測試。

+0

爲此,您應該使用模擬數據輸入您的驗證方法。單元測試不訪問ui。雖然有實際的UI測試,但也可以查看。 – hola

+0

同意hola。看看錄製UI測試。過程非常簡單和流暢。 看看它的行動:https://developer.apple.com/videos/play/wwdc2015/406/ –

回答

0

取決於你想要單元測試還是UI測試。

  • 單元測試:快速。是一致的。他們一步一步確認。但是他們不會端到端。
  • UI測試:慢。脆弱。他們確認端到端。

對於單元測試,您不會編寫實際調出瀏覽器或以任何方式與之交互的測試。相反,你會編寫測試調出瀏覽器,並測試模擬不同的輸入從瀏覽器返回

只要您對來回溝通有信心,這種方法就行得通。如果是這樣,則不需要測試Apple的代碼。如果沒有,那麼你可以通過write a spike solution來了解通信。

+0

我其實需要編寫單元測試,但登錄我需要與瀏覽器交互的權利?是否存在與瀏覽器交互的非UI相關方式(輸入用戶信用和登錄信息)? Xcode UI測試對於功能測試似乎非常有限。 – SKFelix

+0

我的意思是,單元測試不會通過網頁登錄。你會模擬開始它,並結束它。 –

+0

關於它的建議方法是什麼?爲此使用外部框架有多明智?說OCMock? – SKFelix

相關問題