模拟 CLLocationManager (swift) 用于测试
Mock CLLocationManager (swift) for Testing
问题 1
在我真正开始自己编写一些东西之前,是否存在将 CLLocationManager 包装到模拟框架中的现有框架(obj-c 或 swift)?
问题 2
制作模拟位置管理器的最佳方法是什么?
创建一个环绕 CLLocationManager 的 class,任何对该 class 的调用都将 return 测试数据或实际 CLLocation 数据,具体取决于我们的“模式” 运行 在
扩展 CLLocationManager 并覆盖所有我想“处理”的调用
有没有我没想到的第三种选择?
大多数情况下,我想知道假设没有任何可用的方法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
问题 1
在我真正开始自己编写一些东西之前,是否存在将 CLLocationManager 包装到模拟框架中的现有框架(obj-c 或 swift)?
问题 2
制作模拟位置管理器的最佳方法是什么?
创建一个环绕 CLLocationManager 的 class,任何对该 class 的调用都将 return 测试数据或实际 CLLocation 数据,具体取决于我们的“模式” 运行 在
扩展 CLLocationManager 并覆盖所有我想“处理”的调用
有没有我没想到的第三种选择?
大多数情况下,我想知道假设没有任何可用的方法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