- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要开始为这个 iPhone 项目做一些 TDD。问题在于它大量使用 API 数据。
我正在寻找一个很好的教程/指南/示例项目来展示如何实现 TDD 如何在为 iPhone 运行每个测试之前设置数据库。我倾向于使用 UISpec,但如果它做得更好,我愿意研究其他一些测试套件。此外,该项目已经包含 RestKit,它使用 UISpec 进行自己的测试,因此 UISpec 已经包含在 Xcode 项目中。
最佳答案
我是 RestKit 项目的首席开发人员,我建议您不要使用 UISpec 进行测试。 RestKit 对 UISpec 的使用(更准确地说,是它的高度定制的缩减版本)是开发早期的产物——我当时使用 UISpec 进行功能测试,并且对携带这么多库犹豫不决。现在 UISpec 基本上是废弃软件,我已经开始使用 Square 的 KIF 进行 UI/功能测试。
对于新项目的单元测试,我喜欢 Kiwi ( https://github.com/allending/Kiwi ),因为它位于内置 SenTestingKit 之上,并提供 RSpec 样式测试。来自 Pivotal Labs 的 Cedar ( https://github.com/pivotal/cedar ) 和 GHUnit ( http://gabriel.github.com/gh-unit/ ) 也是坚固的。在不久的将来,RestKit 本身可能会从 UISpec 过渡。
现在,关于如何为您的测试设置数据库的问题。如果您查看 RestKit 中的 RKSpecEnvironment.h/m 文件,会发现有很多有用的单元测试方法。假设您正在使用 RestKit 的 Core Data 集成,RKSpecNewManagedObjectStore() 方法将拆除 Core Data 环境并通过删除持久存储为您提供一个清晰的数据库。
RestKit 自己的单元测试可以提供一些关于如何针对 API 数据进行单元化的良好引用(除了上面的测试工具问题之外)。 RKSpecResponseLoader 类可用于将异步 REST 请求转换为您可以测试的程序步骤(它充当 RKObjectLoader 的委托(delegate),并将旋转运行循环以等待加载请求)。因此,一般模式是清除数据库状态,设置您需要/期望的任何对象,然后执行 API 交互并对核心数据中的结果或新状态进行断言。
关于ios - 将 UISpec 与 API 数据结合使用的技巧和教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216924/
我正在将 FlurryAPI 与我的应用程序集成,但我不希望它在我运行测试时启动链接。但是,由于它在 AppDelegate 中,我想它会在我启动验收测试应用程序时运行。我正在使用 UISpec,我想
我需要开始为这个 iPhone 项目做一些 TDD。问题在于它大量使用 API 数据。 我正在寻找一个很好的教程/指南/示例项目来展示如何实现 TDD 如何在为 iPhone 运行每个测试之前设置数据
我一直在使用 Frank 自动化工具为使用 Cucumber 的 iOS 编写测试。如果我理解正确,我可以使用 UIQuery 选择器指向不同的 UI 元素。我很难找到有关这些选择器的文档。它们究竟是
我是一名优秀的程序员,十分优秀!