2010-08-02 80 views

回答

0

它不完全是單元測試,但如何測試用戶界面的最佳方法是使用自動化。 基本上你寫了一個JavaScript,然後在自動化儀器下運行它。

它沒有記錄得很好,幾乎沒有教程。準備沮喪。

0

我使用Cedar並計劃通過模擬NSTouch對象,將它們捆綁爲一個集合,並對各種UITouchGestureSubclass點進行適當調用來測試自定義UIGestureRecognizers。這個單元測試自定義類。父類的行爲我通過調用在UIGR子類上註冊的操作方法來測試。

0

我還沒有看到一個很好的單元測試解決方案,但我很快就需要找到一個,所以我很樂意看到或有更好的答案。

由於@tooluser建議您可以爲UITouch對象提供「很好」的模擬。由於沒有UITouch的公共構造函數提供「真實」的UITouch實例是非常棘手的,並且會依賴於私有API調用。不幸的是,由於這些觸摸模擬需要通過框架代碼,你不能看到或控制,你必須希望你的模擬實際上匹配他們加倍的UITouches的所有預期行爲(包括我們無法看到的任何私人行爲)。這讓我緊張。

或者,你可以按照@ Sulthan的解決方案,並通過UI驅動集成測試來測試你的手勢識別器。這是我迄今使用的方法。使用UIAutomation或像FrankKIF這樣的第三方測試框架來生成與視圖的交互,並聲明手勢識別器如預期的那樣觸發。這至少可以讓你單獨測試識別器(即使不在真正的單元測試中)。

我通常想要進行一些集成測試來驗證自定義視圖中多個識別器之間的交互行爲是否正確,因此我不覺得這種方法太糟糕了,但真的能夠測試驅動器的開發在單元級別的識別器(如果沒有其他的話,測試執行時間)。

相關問題