gpt4 book ai didi

ios - 无法使用 OCMock stub [CLLocationManager AuthorizationStatus]

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:01 26 4
gpt4 key购买 nike

我尝试 stub AuthorizationStatus,但无论我做什么,它总是返回 kCLAuthorizationStatusResticted。

OCMStub([CLLocationManager authorizationStatus]).andReturn(kCLAuthorizationStatusAuthorizedAlways);

我做错了什么?

最佳答案

一般来说,您不会对真实类或实例的调用 stub 。在这种情况下,当您应该在 mock 上 stub 调用时,您在类上 stub 调用。您将必须创建一个模拟类,然后将方法调用 stub 到该模拟上。

一个简单的例子:

id locationManagerMock = OCMClassMock([CLLocationManager class]);
OCMStub([locationManagerMock authorizationStatus]).andReturn(kCLAuthorizationStatusAuthorizedAlways);

// Now this will pass!
XCTAssertEqualObjects([CLLocationManager authorizationStatus], kCLAuthorizationStatusAuthorizedAlways);

如果您想了解更多信息,可以在 OCMock 对 Mocking class methods 的引用中找到一个几乎相同的示例和稍微深入的解释。 .引用资料中的部分有些简短,但尽管如此,它还是很好地简明扼要地解释了框架以及何时应该使用它。

关于ios - 无法使用 OCMock stub [CLLocationManager AuthorizationStatus],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36364650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com