什么是在iPhone上使用行为驱动开发的最佳技术?有哪些开源示例项目演示了这些技术的良好应用?以下是我找到的一些选项:
单元测试
Test::Unit 风格
- OCUnit/SenTestingKit,如iOS开发指南:应用程序单元测试以及其他OCUnit参考资料所解释的那样。
- CATCH
- GHUnit
- Google Toolbox for Mac: iPhone Unit Testing
RSpec 风格
- Kiwi(还带有模拟和期望)
- Cedar
- Jasmine与dexterous' iOS-Acceptance-Testing specs中展示的UI Automation
验收测试
Selenium 风格
UI Automation(适用于设备)
- UI自动化仪器指南
- UI自动化参考文档
- Tuneup js - 与UIAutomation一起使用的很棒的库。
-
可以使用Cucumber(用JavaScript编写)来驱动UI自动化。这将是一个伟大的开源项目。然后,我们可以编写Gherkin来运行UI自动化测试。现在,我只会将Gherkin编写为注释。
更新:Zucchini Framework似乎将Cucumber和UI自动化混合在一起!:)
旧博客文章:
黄瓜风格
Frank和iCuke(基于Cucumber meets iPhone talk)
- Frank Google Group的活动要比iCuke Google Group多得多。
- Frank可以在设备和模拟器上运行,而iCuke只能在模拟器上运行。
- Frank似乎有一个更全面的步骤定义集合,而iCuke的步骤定义则没有。此外,Frank还在他们的维基上提供了一个步骤定义手册。
- 我建议我们将iCuke和Frank合并(类似于Merb和Rails的合并),因为它们有着相同的共同目标:为iOS开发提供Cucumber支持。
Zucchini Framework使用Cucumber语法编写测试,并使用CoffeeScript编写步骤定义。
新增内容
- OCMock 用于 模拟
- OCHamcrest 和/或 Expecta 用于期望
结论
显然,这个问题没有正确答案,但是这是我目前选择的:
对于单元测试,我过去在XCode 4中使用OCUnit/SenTestingKit。它简单而稳定。但是,我更喜欢BDD的语言而不是TDD(为什么RSpec比Test::Unit更好?),因为我们的言语创造了我们的世界。所以现在,我使用带有ARC的Kiwi和Kiwi代码完成/自动完成。我更喜欢Kiwi而不是Cedar,因为它构建在OCUnit之上,并带有RSpec风格的匹配器和mocks/stubs。更新:我现在正在研究OCMock,因为目前Kiwi不支持存根toll-free bridged对象。
对于验收测试,我使用UI自动化,因为它非常棒。它可以记录每个测试用例,使编写测试自动化。此外,苹果开发了它,所以它有一个光明的未来。它还可以在设备和仪器上工作,这允许其他酷炫的功能,比如显示内存泄漏。不幸的是,使用UI自动化,我不知道如何运行Objective-C代码,但是使用Frank & iCuke,您可以。因此,我将只使用单元测试来测试更低级别的Objective-C内容,或者仅为TEST
构建配置创建UIButton
,当点击时,将运行Objective-C代码。您使用哪些解决方案?
相关问题