2011-03-31 100 views
8

我期待在我的公司设置测试,但我对启动的最佳方式有点模糊。XCode4单元测试和UIAutomation

我知道我可以使用框架进行单元测试,比如OCUnit,GHUnit或SenTestingKit ......迄今为止都非常好。我可以制定一个目标,其中逻辑测试我的项目,使用模拟对象等

我也知道使用UIAutomation和JavaScript来驱动和测试的GUI。所以,现在如果我实现了一个相当复杂的GUI功能,我想逻辑测试我的代码,并使用UIAutomation测试GUI。我怎么把这两种方法结合起来,还是将它们分开处理,在这种情况下我是否假设我需要编写两个套测试两个不同语言才能完全测试一个功能?

另一方面,如果任何人都可以提供良好的链接,以便在已经成熟且不太模块化的代码库上开始测试的建议,那将非常值得赞赏。

谢谢!

回答

4

UIAutomation是基于JavaScript的。测试用例是JavaScript文件的集合,稍后由Instruments执行。

是的,你必须这样做seperately:

  1. 它是一个完整不同的语言(JS)
  2. 它不是在Xcode中,构建执行,但通过仪器
  3. GUI测试有不同的测试范围从单元或逻辑测试。即使与逻辑测试有一些相似之处。它也被测试,如果GUI“行为正确”。

此视频可能会对您有所帮助。花一个小时,然后你应该可以自己决定(UIAutomation会话)。

http://developer.apple.com/videos/wwdc/2010/

顺便说一句:还有就是目前自动化UIAutomation测试没有令人满意的方式(对于逻辑和单元测试,也有一些)。例如将它们与持续代码集成结合起来。有关于这方面的讨论,但我迄今还没有看到解决方案。总而言之,你可以用一下,要不是认真的测试UIAutomation仍然是不适用:

  1. 没有测试自动化
  2. 的测试用例没有分离。如果您的编排中有一个案例失败,则以下所有测试可能无效。
+1

对于简单的测试用例分离,您可以使用亚历克斯沃尔默的调整库中的test()函数:https://github.com/alexvollmer/tuneup_js – jki 2011-04-26 16:03:32

+0

我刚刚在这里阅读您的答案。你知道苹果是否用iOS5改进了UIAutomation?我听到有关它的传闻,但由于UIAutomation上的Apples文档非常稀少,我找不到有关该主题的任何其他信息。 – 2012-03-12 11:05:02