我正在为iBeaconManager编写测试用例。我的iBeaconManager内部包含一个CLLocationManager实例,其委托设置为iBeaconManager。我将一个CLCircularRegions数组传递给我的iBeaconManager,称为我的位置管理器[startMonitoringForRegion:]方法。我的位置管理员[didStartMonitoringForRegion:]由于某种原因没有被调用。我做错了什么?
答案 0 :(得分:2)
您的测试呼叫startMonitoringForRegion:
。根据您的设置,这可能会也可能不会触发回调。但即使它确实如此,它也是异步的并且需要时间。在此之前,测试结束并消失。
根据您的目标尝试其中一种方法:
assertWithTimeout
。)didStartMonitoringForRegion:
,就像它已被CLLocationManager调用一样。这是从任何框架测试回调的常用方法。单元测试方法的优点包括速度,可靠性,您可以在模拟器上运行(因此它可以成为您持续集成的一部分)。此外,您可以模拟任意数量的条件,而无需创建这些条件。例如,可以通过错误或其他边缘情况轻松回拨。