Xcode4单元测试和UI自动化测试

8

我希望在公司建立测试,但我不太清楚最好的开始方式。

我知道可以使用单元测试框架(如OCUnit、GHUnit或SenTestingKit)进行单元测试。我可以创建一个目标,使用模拟对象等逻辑测试项目。

我也知道可以使用UIAutomation和JavaScript来驱动和测试GUI。

那么,现在如果我实现了一个相当复杂的GUI功能,我想逻辑测试我的代码并使用UIAutomation测试GUI。我如何结合这两种方法,还是它们要分别处理,如果是这种情况,我是否需要用两种不同的语言编写两组测试来完全测试一个功能?

附带说明,如果有人可以提供关于在已经成熟且不太模块化的代码库上开始测试的建议的好链接,那将不胜感激。

谢谢!

1个回答

4

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

是的,您必须单独执行以下操作:

  1. 它是一种完全不同的语言(JS)
  2. 它不是在Xcode-Build上执行的,而是通过Instruments执行的
  3. GUI测试与单元测试或逻辑测试具有不同的测试范围。即使与逻辑测试存在一些相似之处,也会测试GUI是否“正确运行”。

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

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

顺便说一句:目前还没有令人满意的方法来自动化UIAutomation测试(对于逻辑和单元测试,有一些方法)。例如将它们与持续代码集成相结合。有关此事进行了讨论,但我迄今为止尚未看到解决方案。总的来说,您可以稍微尝试一下,但对于严肃的测试来说,UIAutomation仍然不适用:

  1. 没有测试自动化
  2. 没有分离测试用例。如果在您的编排中一个用例失败,所有后续测试可能都是无用的。

1
为了简单地分离测试用例,您可以使用Alex Volmer的tuneup库中的test()函数:https://github.com/alexvollmer/tuneup_js - jki
我刚刚在这里读了你的答案。你知道苹果是否在iOS5中改进了UIAutomation吗?我听说有关它的传言,但由于苹果关于UIAutomation的文档非常稀少,我找不到任何其他关于该主题的信息。 - Jens Kohl

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