大佬教程收集整理的这篇文章主要介绍了ios – 如何根据SDK更改的方法创建单元测试?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,iOS 7中提供了原生base64编码,所以我做了一个看起来像这样的检查(我从另一个SO问题中提取):
if([NSData respondsToSELEctor:@SELEctor(base64EncodedStringWithOptions:)]) { // Do iOS 7 stuff } else { // Break my head over iOS 6 compatibility }
这似乎工作正常,但我如何编写单元测试来检查这两种情况?如果我在单元测试中使用相同的if-else检查,那将会破坏单元测试的目的,不是吗?
编辑:
在此示例中,您有一个测试可以检查base64解码是否正确完成.这个方法不知道它运行的iOS版本 – 它只知道解码是否正常工作.您将设置CI基础结构以在iOS 6和7设备上运行此方法.当它在iOS 7设备上运行时,if会测试if语句的YES分支,而在iOS 6上它会测试if语句的NO分支.
- (void)testEncoding { NSData *base64EncodedData = [@"aGVsbG8=" dataUsingEncoding:NSUTF8StringEncoding]; NSString *decodedString = [self decodeData:base64EncodedData]; XCTAssert([decodedString isEqualToString:@"Hello"],@"The base64 encoded String should decode to the word `Hello`"); } - (NSString *)decodeData:(NSData *)data { if ([data respondsToSELEctor:@SELEctor(base64EncodedDataWithOptions:)]) { return [[NSString alloc] initWithData:[[NSData alloc] initWithBase64EncodedData:data options:0] encoding:NSUTF8StringEncoding]; } else { // whatever method you use on iOS 6 to decode the base 64 data. return nil; } }
以上是大佬教程为你收集整理的ios – 如何根据SDK更改的方法创建单元测试?全部内容,希望文章能够帮你解决ios – 如何根据SDK更改的方法创建单元测试?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。