ios - XCTest 以及需要一个特殊目标来调整应用程序启动行为

标签 ios cocoa-touch unit-testing xcode5 xctest

我正在尝试实现 XCTest,因为我在 iOS 应用程序中有一个我似乎没有弄清楚的错误,所以想开始构建获取案例。

然而,该应用程序在加载后会自动连接到服务器以更新数据。但是对于测试,我不希望这种情况发生,因为我需要清除 CoreData 数据库并为每个测试填充数据。

有没有办法知道什么时候构建(在目标上)是否要运行测试?也就是说,我可以在测试时使用标志来省略某些操作吗?

或者我是否应该专门为测试复制我的正常目标,并以这种方式放入一个标志? (例如 #if TESTING 而不是 #if DEBUG)

最佳答案

不是您问题的直接答案,但它可能是您问题的解决方案。

您可以模拟执行服务器连接的类(即伪造服务器连接)。

您可以使用 OCMock 来完成此操作,您可以找到 here或者可以找到 OCMockito here .

目前,我发现使用 XCTest 比使用 OCMockito 更容易实现 OCMock。然而,OCMock 也可能存在一些问题,但这些问题可以通过查看 this site 来解决。 .

关于ios - XCTest 以及需要一个特殊目标来调整应用程序启动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895211/

相关文章:

ios - JSON AFNetworking iOS 6 查看值是否为 "on"

javascript - 如何在 React Native Expo 项目中从一个屏幕转到另一个屏幕?

c++ - C++中对象状态的重构

java - 使用 Junit 4 进行 java servlet 的 Happy Flow 测试用例

ios - 解除 View Controller 动画 : completion: has no effect

ios - UITextField textFieldDidEndEditing 未从启用调用到禁用 UITextField

ios - 使用 cocoa touch 框架在框架模块内包含非模块化 header

iphone - 你能用 NSPredicate 指定 "select unique name from ..."吗?

iphone - navigationItem.backBarButtonItem 不工作?为什么以前的菜单仍然显示为按钮?

c# - 协助使用 rhino 模拟为方法编写单元测试