gpt4 book ai didi

ios - OCMock 类方法不起作用

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

我正在尝试模拟一个类方法来识别 iOS 是 iOS 6(或更早版本)还是 iOS 7(或更高版本)。这是测试代码:

id iOSDetectorMock = [OCMockObject mockForClass:[UTiOSVersionDetector class]];
[[[iOSDetectorMock stub] andReturnValue:@(YES)] isIOS6_Earlier];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.homeViewController];
[self.homeViewController loadView];
[self.homeViewController viewDidLoad];
XCTAssertTrue([self.homeViewController.navigationController.navigationBar.tintColor isEqual:Color_Dark_Green], @"Navigation bar tint color is not correct");
[iOSDetectorMock stopMocking];
navController = nil;

但是,isIOS6_Earlier 方法一直返回 NO,忽略了我使用的模拟。 UTiOSVersionDetector原代码如下:

+ (BOOL) isIOS6_Earlier {

if ([[[UIDevice currentDevice] systemVersion] intValue] <= 6) {
return YES;
}

return NO;

}

编辑:我正在 Xcode 5.1 上测试,但它也存在于 Xcode 5.0.2 上。

最佳答案

也许试着让它更明确:

[[[[iOSDetectorMock stub] classMethod] andReturnValue:@YES] isIOS6_Earlier];

ocmock.org/features 所述,在某些情况下可能会有所帮助。

关于ios - OCMock 类方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356439/

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