是否有人成功通過UIGestureRecognizer的單元測試子類?如果是這樣,你使用或推薦什麼方法?如果是的話,你如何去綜合事件?如何對UIGestureRecognizer子類進行單元測試?
4
A
回答
0
它不完全是單元測試,但如何測試用戶界面的最佳方法是使用自動化。 基本上你寫了一個JavaScript,然後在自動化儀器下運行它。
它沒有記錄得很好,幾乎沒有教程。準備沮喪。
0
我使用Cedar並計劃通過模擬NSTouch對象,將它們捆綁爲一個集合,並對各種UITouchGestureSubclass點進行適當調用來測試自定義UIGestureRecognizers。這個單元測試自定義類。父類的行爲我通過調用在UIGR子類上註冊的操作方法來測試。
0
我還沒有看到一個很好的單元測試解決方案,但我很快就需要找到一個,所以我很樂意看到或有更好的答案。
由於@tooluser建議您可以爲UITouch對象提供「很好」的模擬。由於沒有UITouch的公共構造函數提供「真實」的UITouch實例是非常棘手的,並且會依賴於私有API調用。不幸的是,由於這些觸摸模擬需要通過框架代碼,你不能看到或控制,你必須希望你的模擬實際上匹配他們加倍的UITouches的所有預期行爲(包括我們無法看到的任何私人行爲)。這讓我緊張。
或者,你可以按照@ Sulthan的解決方案,並通過UI驅動集成測試來測試你的手勢識別器。這是我迄今使用的方法。使用UIAutomation或像Frank或KIF這樣的第三方測試框架來生成與視圖的交互,並聲明手勢識別器如預期的那樣觸發。這至少可以讓你單獨測試識別器(即使不在真正的單元測試中)。
我通常想要進行一些集成測試來驗證自定義視圖中多個識別器之間的交互行爲是否正確,因此我不覺得這種方法太糟糕了,但真的能夠測試驅動器的開發在單元級別的識別器(如果沒有其他的話,測試執行時間)。
相關問題
- 1. 如何對wxPython進行單元測試?
- 2. 如何對IDataErrorInfo進行單元測試?
- 3. 如何對rxjs5進行單元測試?
- 4. 如何對子進程進行單元測試.CalledProcessError
- 5. 如何對電子表格解析器進行單元測試?
- 6. 如何對電子郵件發送進行單元測試?
- 7. 如何對電子郵件客戶端進行單元測試
- 8. 如何對電子郵件規則進行單元測試
- 9. 如何對與系統(或Android)類進行交互的單元測試方法進行單元測試
- 10. 如何在PHP中對PCNTL forker類進行單元測試?
- 11. 如何對文件管理器類進行單元測試?
- 12. 如何對讀取xml文件的類進行單元測試?
- 13. 如何對抽象類進行單元測試
- 14. 如何對通用類進行單元測試
- 15. 如何使用System.Windows.Threading.Dispatcher對單元進行單元測試
- 16. 我如何進行單元測試openWithCompletionHandler
- 17. 如何進行單元測試出錯
- 18. OpenGL如何進行單元測試?
- 19. 如何進行單元測試
- 20. Grails - 如何進行單元測試addTo *
- 21. Hadoop:如何進行單元測試FileSystem
- 22. IRepository如何進行單元測試?
- 23. 如何進行單元測試?
- 24. 如何進行單元測試配置
- 25. 對Bamboo進行Silverlight單元測試
- 26. 如何對二進制方法進行單元測試?
- 27. Ng-click - 如何對行爲進行單元測試
- 28. 如何對單元測試Xamarin.Forms行爲
- 29. 如何在沒有配對getter的類上對setter進行單元測試?
- 30. 用鼻子進行單元測試:在編譯時測試?