有没有关于Cocoa Touch自动化UI测试的好教程?

13
通常,我发现我在iPhone开发中最重要的测试用例几乎都是围绕UI测试而不是业务逻辑或数据测试。我对XCode环境下自动化UI测试不太熟悉。有人能指点一下我一个好的教程或书籍吗?
更新 这个问题是几年前写的,自那时以来,UI测试已经有了很大的进步。使用UI Automation仍然是一种选择,但是KIF Framework现在是功能测试的更好解决方案,在我看来。
来自KIF的github页面:
KIF代表Keep It Functional,是一个iOS集成测试框架。通过利用操作系统为视觉障碍者提供的可访问性属性,它可以轻松自动化iOS应用程序。
KIF使用标准的XCTest测试目标进行测试构建和执行。测试在主线程中同步进行(运行运行循环以强制时间的流逝),从而允许更复杂的逻辑和组合。这也使KIF能够利用Xcode 5测试导航器、命令行构建工具和Bot测试报告。
3个回答

19

你最好使用iOS 4.0推出的UI Automation工具。可以编写脚本来测试用户界面的许多方面。

苹果在WWDC 2010会议306 -“使用Instruments自动化用户界面测试”视频中对该工具进行了很好的介绍。我在我的高级iOS开发课程在iTunes U上的“测试”会议视频中演示了如何设置脚本并进行测试。我在那个班级上关于UI Automation的笔记,包括样例脚本,可以在这里找到。

此外,您可能还想查看James Turner的文章“如何使用UIAutomation创建iPhone UI测试”和Alex Vollmer的“使用UIAutomation”。


2
你真正想测试什么?我同意测试视图交互很重要,但是我发现我通常可以构建一个单元测试或集成测试来测试视图或视图及其控制器,以验证此行为,而不需要通过UI驱动整个应用程序。
例如,http://blog.carbonfive.com/2010/03/10/testing-view-controllers/有一些测试示例,测试UIKit视图是否绑定了IBAction或具有适当的委托,并且控制器是否适当地响应这些操作或委托消息。没有必要实际驱动UIButtonUITableView,因为我愿意相信这些类实际上是有效的,而只需要测试我的使用和配置。
对于自定义视图组件,您可以在测试中直接发送UIResponder消息并断言它们的行为是否符合预期,同样不需要驱动整个UI。
你能提供一个你想要测试的行为的例子吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接