在 Xcode9.1 中使用 OCMock 存根 [CLLocationManager authorizationSt



我正在使用OCMock为单元测试用例存根[CLLocationManager authorizationStatus]。似乎Xcode9.1与方法名称混淆了,因为CMPedometerCMAltimeter等其他类中也存在相同的方法。不过,它与Xcode8.3不符。 单击此处查看错误的屏幕截图

编写模拟是为了它们可以与任何类一起使用,并且由于 Objective-C 没有泛型,因此它们无法为特定类声明正确的返回类型。相反,他们总是使用id.

在您的情况下,按如下方式添加强制转换应该可以解决问题。

[(CLLocationManager)[[self.mockedApplication stub] andReturnValue: ... ] 
authorizationStatus];

PS:将来,请将完整的代码也作为文本发布,而不仅仅是屏幕截图。

最新更新