在 ios6 上运行单元测试是不是有意义

Posted

技术标签:

【中文标题】在 ios6 上运行单元测试是不是有意义【英文标题】:Is there sense to run unit tests on ios6在 ios6 上运行单元测试是否有意义 【发布时间】:2014-05-11 21:20:34 【问题描述】:

我们最近开始了新项目,XCTest 是我们的单元测试框架。我们还支持 ios6 的工作方式和外观。

很遗憾,XCTest 不适用于 ios6。您认为有可能在 ios6 上运行测试是否有价值?您希望从中获得不同的输出吗?

我可以通过注入模拟操作系统版本控制工具来测试 ios6 特定代码。因此,在 ios6 上运行测试以检查特定于 ios6 的 if-else 案例并不是这个问题的正确答案(如果我错了,请告诉我)

【问题讨论】:

【参考方案1】:

这取决于您要测试的具体内容,但作为一般原则,我不得不说是的,这是值得的。在 ios 版本更改期间,Apple 在后台发生了很多变化,并且很难知道,例如,iOS6 -> iOS7 的内部错误修复或优化是否会影响您的测试结果。

如果您的项目支持 iOS6,那么您确实需要在 iOS6 上运行测试。

要获得在 iOS6 上运行的测试,请创建一个测试目标并从下拉列表中选择“OCUnit”(XCTest 仅适用于 iOS7),或者您可以使用也支持 iOS6 的 GHUnit。

模拟/注入这件事听起来很有趣,但我认为它不能替代在正版 iOS6 设备上正确运行测试。

【讨论】:

感谢您的回答。我的单元测试被大量编写以检查自己的实现,但其中一些也用于检查与框架的集成。看起来我还应该保留操作系统集成的测试 是的,如果您正在测试的内容与 Apple 框架交互,我会说您肯定也需要在 iOS6 上进行测试。

以上是关于在 ios6 上运行单元测试是不是有意义的主要内容,如果未能解决你的问题,请参考以下文章

细数35个单元测试准则

单元测试不规范!事后运维两行泪

DAO(又名存储库)是不是应该进行单元测试?

验证属性或配置的单元/集成测试

单元测试目标不在Xcode 4.5上运行

单元测试基础