单元测试很棒,但是

Dan*_*ark 10 iphone xcode ios ios-ui-automation

我花时间设置一些单元测试并在XCode等中设置目标,它们对于几个类非常有用.然而:

我想测试我不想启动整个应用程序的小UI部分.没有传递/失败的概念:我需要"看到"碎片,我可以制作所有相关类的虚拟实例来执行此操作.我的问题是:如何在XCode中设置它?

我意识到我可以为每个类(或类组)使用另一个XCode项目,但这看起来有点麻烦.每个的另一个目标?

Bra*_*son 12

我知道您正在寻找一种方法来测试不需要功能齐全的应用程序的UI组件,但我对iOS 4.0中引入的新UI自动化工具让您印象深刻.

此工具允许您使用Javascript脚本以交互方式测试应用程序的界面,并且这样做的方式不需要检查屏幕上的确切像素值或位置.它使用系统中存在的内置可访问性挂钩,用于VoiceOver识别组件并与之交互.

使用这个工具,我已经能够编写完全运用我的应用程序的测试脚本,因为用户可以与它进行交互,以及针对特定区域并寻找微妙内存构建的应用程序.

关于这部分乐器的文档有点稀疏,但我最近教了一个课程,涵盖了视频在iTunes U上免费提供的主题(在秋季学期查找测试课程).我的课程笔记(采用VoodooPad格式)也涵盖了这一点.我还强烈建议观看WWDC 2010视频会话306 - "使用乐器自动化用户界面测试".


小智 5

好吧,即使GUI是大型应用程序的一部分,也无法调用显示一些GUI的测试.你可以在这里做的是创建一个单独的可执行目标,并编写一个小工具,重用应用程序中的GUI组件,并根据输入参数向您显示它们.这将消除对许多不同目标的需求.

如果仍然坚持使用单元测试,则可以在一段时间内显示GUI,例如10秒.因此测试用例将一直运行,直到GUI关闭或超时结束,每次测试最多需要N秒才能执行.