模拟 CLLocationManager (swift) 用于测试

Mock CLLocationManager (swift) for Testing

问题 1

在我真正开始自己编写一些东西之前,是否存在将 CLLocationManager 包装到模拟框架中的现有框架(obj-c 或 swift)?

问题 2

制作模拟位置管理器的最佳方法是什么?

大多数情况下,我想知道假设没有任何可用的方法pro/con,这里的每种方法是什么

[编辑]

虽然 XCode 中有一个模拟位置功能,但它并不能完全满足我的需要。如果我没记错的话它不做标题,它们必须被插入。此外,我最终可能会修改此 class 以从飞行模拟器

驱动 CLLocationManager

所以我想我会重新审视这个问题。我最终做的是编写一个完整的框架来处理相关应用程序的位置(和其他数据)。我们正在使用外部 GPS 传感器。

class 被称为 DataManager 我创建了一个通用的 LocationMessage 类型(可以用 msg.asCLLocation 转换成 CLLocation)。

这个大型框架的一部分允许记录数据和文件回放,我们可以从

驱动位置
  • CoreLocation
  • 一个Xplane插件
  • UDP 流
  • 录制的文件
  • 外部 GPS 传感器

所以基本上答案是:

  • Create a class that wraps around CLLocationManager, any calls into that class will return test data or actual CLLocation data depending on what "mode" we are running in