使用 XCTest 在模拟器中使用 StartMonitoringForRegion 未监控 CLBeaconRegion

Posted

技术标签:

【中文标题】使用 XCTest 在模拟器中使用 StartMonitoringForRegion 未监控 CLBeaconRegion【英文标题】:CLBeaconRegion not monitored with StartMonitoringForRegion in simulator with XCTest 【发布时间】:2016-03-15 22:14:39 【问题描述】:

在我的 XCTest 案例中,我使用我的 CLLocationManager 实例在 CLBeaconRegion 上调用 StartMonitoringForRegion,但它没有出现在我的受监控区域属性中。它只发生在模拟器中。是错误还是我做错了什么?

【问题讨论】:

【参考方案1】:

模拟器无法监控信标,所以这总是会失败。如果您想使用信标测试区域监控,您需要使用设备。 这与 XCText 没有任何关系,只是模拟器无法监控信标。我相信您仍然可以监视区域,因为模拟器和模拟位置,它只是无法模拟检测信标。

【讨论】:

我添加了 monitoringDidFailForRegion 方法,但它根本没有被调用。似乎 startMonitoringForRegion 根本不起作用。奇怪的是,如果我添加 CLCircularRegion 而不是 CLBeaconRegion,它会起作用,它会显示在我的受监控区域属性中。这正常吗? 抱歉不正确。我更新了我的答案。 MonitoringDidFail 仅在您尝试监控超过 20 个区域时调用。我的错误,但真正的原因是因为您无法使用模拟器监控信标

以上是关于使用 XCTest 在模拟器中使用 StartMonitoringForRegion 未监控 CLBeaconRegion的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 IOS 的 XCTest 单元测试用例中模拟方法(带参数)调用

XCTest.framework 构建错误

在 XCTest 案例中处理对 CLLocationManager 授权的请求

有没有办法使用 XCTest 对 Touch Id 进行单元测试?

有没有办法在 XCTest 函数中模拟用户的输入?

从命令行运行 xctest