【发布时间】:2014-01-22 09:03:40
【问题描述】:
我是一名软件工程专业的学生,参加了一个实习课程,其中一个学生小组与第三方客户合作解决问题。我的团队被分配了一个涉及编写 iOS 程序的项目。我们都没有做过任何 iOS 编程。我们正在如饥似渴地阅读,但需要尽快跟上进度,因为这个学期只有 15 周。
我的问题是关于测试框架的。我们的团队计划使用 TDD。我们的 iOS 应用程序需要支持 iOS 6 和 7。我想我在某处读到 XCTest 仅支持 iOS 7,并且我们需要使用 OCUnit 才能支持 iOS 6。这是真的吗?我们如何编写一个同时支持 iOS 6 和 7 的应用程序?是否像将部署目标设置为 iOS 6.0 并且不使用 iOS 6.0 之后引入的任何 API 一样简单?
【问题讨论】:
-
我们还没有写任何代码。我们仍在尝试确定如何设置我们的环境。
-
鉴于您的经验和时间限制,支持 iOS 6 和 iOS 7 可能过于雄心勃勃。 UI 完全不同,这需要特别考虑,因此会花费大量资源。为了增加这个项目成功的可能性,只关注 iOS 7,并且只有在有时间的情况下,向后移植一个 iOS 6 的版本,可能会有一个完全不同的 UI。跨度>
-
感谢您的建议,@CouchDeveloper。如果我们一开始只为 iOS 7 编写测试,是否需要用 OCUnit 编写测试,以使某人(我们或以后的其他团队)能够轻松地将测试代码移植到 iOS 6? YAGNI 会指向我们使用 XCTest 并在需要时切换,但如果可以通过使用 OCUnit 使测试适用于 iOS 6 和 7,那么我认为这样做是明智的。再次感谢您的建议——非常感谢。
-
XCTest 与 OCUnit 非常相似。将用 XCTest 编写的测试重写为 OCUnit 并不费力。另一方面,XCTest 没有提供比 OCUnit 更多的功能,因此您可以很好地在 OCUnit 中编写测试。 ;) 两种测试工具都不是很好 - 但集成到 Xcode 中很好。
标签: ios xcode unit-testing ocunit xctest