2010-08-02 79 views

回答

0

它不完全是单元测试,但如何测试用户界面的最佳方法是使用自动化。 基本上你写了一个JavaScript,然后在自动化仪器下运行它。

它没有记录得很好,几乎没有教程。准备沮丧。

0

我使用Cedar并计划通过模拟NSTouch对象,将它们捆绑为一个集合,并对各种UITouchGestureSubclass点进行适当调用来测试自定义UIGestureRecognizers。这个单元测试自定义类。父类的行为我通过调用在UIGR子类上注册的操作方法来测试。

0

我还没有看到一个很好的单元测试解决方案,但我很快就需要找到一个,所以我很乐意看到或有更好的答案。

由于@tooluser建议您可以为UITouch对象提供“很好”的模拟。由于没有UITouch的公共构造函数提供“真实”的UITouch实例是非常棘手的,并且会依赖于私有API调用。不幸的是,由于这些触摸模拟需要通过框架代码,你不能看到或控制,你必须希望你的模拟实际上匹配他们加倍的UITouches的所有预期行为(包括我们无法看到的任何私人行为)。这让我紧张。

或者,你可以按照@ Sulthan的解决方案,并通过UI驱动集成测试来测试你的手势识别器。这是我迄今使用的方法。使用UIAutomation或像FrankKIF这样的第三方测试框架来生成与视图的交互,并声明手势识别器如预期的那样触发。这至少可以让你单独测试识别器(即使不在真正的单元测试中)。

我通常想要进行一些集成测试来验证自定义视图中多个识别器之间的交互行为是否正确,因此我不觉得这种方法太糟糕了,但真的能够测试驱动器的开发在单元级别的识别器(如果没有其他的话,测试执行时间)。

相关问题