为 iPhone / iPad 编写单元测试的最佳方法是啥?

Posted

技术标签:

【中文标题】为 iPhone / iPad 编写单元测试的最佳方法是啥?【英文标题】:What is the best approach for writing unit tests for iPhone / iPad?为 iPhone / iPad 编写单元测试的最佳方法是什么? 【发布时间】:2010-04-15 05:07:56 【问题描述】:

我正在开发一个 iPad 应用程序。我不确定我是否应该为这个应用程序编写单元测试,如果是,我应该如何编写它们。

您认为为 iPhone / iPad 编写单元测试的最佳方法是什么?

【问题讨论】:

说 iphone 应用程序“相当小”是不是有点泛泛而谈?也许您开发的应用程序很小,但在应用商店中有一些非常复杂的应用程序。 如果您质疑的是(您的)工具包而不是方法,您应该更改标题。这就是为什么你会得到所有反对票。 @Madhup:也许另一个关于单元/集成的问题或社区 wiki/你有什么测试 iphone/ipad 应用程序会是更好的方法。 @ROMANARMY 我想我已经获得了足够多的反对票..... ;) @Madhup:可能在这个问题上。但是,如果您注意到一些答案/cmets 谈论 iPhone/iPad 开发的各种单元/集成测试方法。快速搜索在 SO 上没有产生任何类似的资源,因此它可能会非常有用。您对标题/问题的原始措辞投了反对票。 【参考方案1】:

好的,这里提出两个问题:

    单元测试值得吗?

回答:当然。我无法计算它为我节省了数小时的痛苦和痛苦的次数。

    在 iPhone/iPad 环境中进行单元测试的最佳方法是什么?

回答:对于我自己,我跳过了 sen 并转向了 GHUnit 和 OCMock。 GHUnit 允许在模拟器中进行测试和调试,而 sen 则不允许。仅此一项就使其成为 iPhone/iPad 开发的更好建议。

【讨论】:

你真的觉得 GHUnit 有用吗?我通常想单独运行一个测试(为什么我看它)。但是,部署到模拟器或应用程序比运行我的所有测试需要更长的时间。 是的。我更喜欢在模拟器上运行测试,因为我可以确信我没有意外包含非法代码。加载后,我可以使用 GHUnit iphone UI 单独运行测试,以根据名称过滤掉其他测试。这也很好,因为一旦你取得了成功,你就可以启用所有测试来检查是否没有其他任何问题。一般来说,在所有测试都通过之前,我不会感到高兴。 这很好,但它没有提供任何您无法通过 Google 工具箱获得的东西。寻找一些理由改用它。 不能给你一个 :-) 我没有使用谷歌工具箱,所以我不知道它有多好。会对您可能提供的任何反馈感兴趣。【参考方案2】:

您将编写一次测试,但随着应用程序的发展多次运行它。

如果测试通过,你就知道你没有破坏任何东西。如果测试失败,您知道在哪里修复。如果测试通过而应用程序失败,您就知道需要进行更多测试。

从长远来看,编写测试将节省时间。 在短期内,您可以通过编写测试来验证您是否了解各个例程的功能,从而对代码的正确性充满信心。

无论您的应用程序面向什么操作系统/平台,无论它现在的大小如何......

【讨论】:

以上是关于为 iPhone / iPad 编写单元测试的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

存储 iPad/iPhone 应用程序数据的最佳方式

将滚动条添加到 iPad 和 iPhone 的 div 的最佳方法是啥?

如何在 iPad 中测试应用程序?

在 tableView:cellForRowAtIndexPath 中确定 iPhone 和 iPad 的不同单元格:

UITableView 在 iPhone 和 iPad 上有不同的选择行为

使用 XCode 3 对 iPhone 静态库进行单元测试