记得有人说过,写不写测试代码是判断一个开发者是否成熟的标志。良好的测试代码能够让程序代码更健壮,使重构更加方便。虽然Objective-C是一种编译语言,但是在Xcode的帮助下,做测试和测试驱动开发(Test Driven Development, TDD)也非常方便。苹果官方有一个关于如何做为项目增加测试支持的文档,不过iOS 4.3的文档包的的该文档已经比较老了,如果你是付费iOS开发者,那么可以看看iOS 5.0的文档包的的该文档,已经更新为Xcode 4的教程了。
iOS的测试分两种,一种是逻辑测试(Logic Tests);另一种是程序测试(Application Tests)。逻辑测试主要是用来测试模块的业务逻辑的;程序测试则是测试模块在整个应用程序中的行为是否正确。逻辑测试类似单元测试;而程序测试则类似集成测试。个人感觉,逻辑测试比较适合测试模型代码;而应用程序测试则比较适合测试控制器和视图代码,考虑到视图在iOS开发中主要是通过Interface Builder来实现,因此,应用测试实际上就是测试控制器代码的。
下面,简单的讲一下如何设置项目支持单元测试。我们要在Xcode中为项目建立两种测试的Target。