`

iOS中异步函数的单元测试

 
阅读更多

转载自:http://blog.csdn.net/diyagoanyhacker/article/details/8540239

 

通常单元测试执行顺序执行后进程就退出了,对于异步函数(如:网络访问等)的测试比较麻烦。在iOS开发中可以利用Runloop来阻塞主线程,在回调函数中做断言。

代码片段如下,完整Demo

//
// SampleTest.m
// SampleTest
//
// Created by Magic Yang on 5/11/12.
// Copyright (c) 2012 Baidu. All rights reserved.
//

#import "SampleTest.h"

@implementation SampleTest
{
int statusCode;
}
- (void)setUp
{
[super setUp];

statusCode = -1;
}

- (void)tearDown
{
// Tear-down code here.

[super tearDown];
}

- (void)testExample
{
NetworkHelper *helper = [[NetworkHelper alloc] initWithDelegate:self];
[helper getStatusCodeForSite:@"http://www.baidu.com"];
NSLog(@"------------------ Waiting ------------------");
CFRunLoopRun();
STAssertTrue(statusCode == 200, @"Can not access this site");
NSLog(@"------------------ Finished ------------------");
}

- (void)succeedGotStatusCode:(int)code
{
statusCode = code;
CFRunLoopRef runLoopRef = CFRunLoopGetCurrent();
CFRunLoopStop(runLoopRef);
}

- (void)failedGotStatusCodeWithError:(NSError *)error
{
// ...
}

@end
分享到:
评论

相关推荐

    iOS单元测试大礼包

    单元测试是对软件中的最小可测试单元进行检查和验证,对于iOS应用而言,这通常指的是单个函数、方法或类。单元测试的主要目标是尽早发现代码中的错误,避免在后期集成过程中出现难以定位的问题。通过编写自动化测试...

    swift-Spry是基于Nimble的SwiftPlaygrounds单元测试库

    Swift编程语言以其强大的功能和简洁的语法在iOS和macOS应用开发中占据了一席之地。在Swift的生态系统中,测试是确保代码质量、可靠性和可维护性的重要环节。`swift-Spry` 是一个专门为SwiftPlaygrounds设计的单元...

    IOS测试框架使用

    首先,XCTest框架是Apple为Swift和Objective-C开发者设计的,它支持创建和运行各种类型的测试,包括针对单个函数或方法的单元测试,以及检查多个组件交互的集成测试。通过XCTest,你可以编写测试用例来验证你的代码...

    iOS测试学习

    1. **单元测试**:这是最基本的测试类型,用于验证应用程序中的单个代码单元,如函数或方法。Xcode内置了 XCTest 框架,开发者可以通过编写测试用例来检查代码功能是否正常。了解断言(assertions)的使用、测试目标...

    张星宇-东北大学-iOS开发1

    4. gtest框架:gtest是一个开源的C++单元测试框架,用于测试C++代码。张星宇在自己的iOS开发中使用了gtest框架来测试C++代码。 5. Core Data:Core Data是Apple提供的一种框架,用于管理应用程序中的数据模型。张...

    iOS 编程第四版

    最后,为了让应用能够上架App Store并触达全球用户,本书还将介绍iOS应用的测试策略,包括单元测试、UI测试以及App Store审核流程。此外,还会讲解如何使用TestFlight进行远程测试,以及发布后的更新和维护。 总的...

    iOS开发电子书

    书中会介绍单元测试、UI测试和性能测试的方法。最后,会讲解App Store Connect的使用,以及应用的提交流程和App审核指南。 总的来说,"iPhone开发秘籍.pdf"涵盖了iOS开发的各个方面,无论你是初学者还是有经验的...

    ios教学视频

    - 单元测试和界面测试的基本方法。 - 调试工具的使用技巧:断点设置、变量监控等。 通过以上内容的介绍,我们可以看出这套“ios教学视频”旨在为初学者提供一个全面而详细的iOS开发入门指南。无论是对于想要踏入...

    IOS课程学习体系

    11. **测试与调试**:理解单元测试、集成测试以及Xcode的调试工具,确保代码质量和稳定性。 12. **App Store发布流程**:熟悉App Store Connect的操作,包括创建App ID、配置版本、提交审核和发布应用。 13. **...

    ios开发实例

    学会使用Xcode的内置调试工具,如LLDB,以及如何进行单元测试和UI测试,可以帮助确保应用的质量和稳定性。 总结,"ios开发实例"涵盖的内容广泛,包括Swift语言基础、应用生命周期管理、UI设计与事件处理、网络编程...

    抽奖大转盘iOS

    7. **测试**:项目中包含"核心动画Tests"部分,意味着开发过程中可能进行了单元测试或集成测试,确保抽奖逻辑的正确性。 8. **Xcode项目管理**:"09_抽奖_核心动画.xcodeproj"是Xcode项目的配置文件,包含了项目的...

    ios-摇号,抽签.zip

    - 在开发过程中,确保进行充分的单元测试和集成测试,检查摇号算法的公平性和各种边界条件。 总的来说,这个"ios-摇号,抽签.zip"项目涵盖了iOS开发中的多方面技术,包括用户界面设计、动画实现、数据管理、随机数...

    iOS编程 第六版 英文版

    10. **测试与调试**:书中会涵盖单元测试、集成测试的编写,以及使用Xcode的调试工具进行问题排查。 11. **App Store发布流程**:包括代码签名、应用版本管理、App Store Connect的使用,以及提交审核的注意事项。 ...

    ios开发90个实例源码苹果ios系统项目开发学习资料

    11. **持续集成与测试**:源码可能包含单元测试和自动化构建的实践,这对于保证代码质量和项目进度至关重要。 通过深入研究这90个实例源码,开发者不仅可以掌握Swift编程,还能了解到iOS开发的全貌,包括最佳实践、...

    上海iOS最新面试题汇总

    4. **测试**:单元测试、集成测试的重要性,使用XCTest进行测试的方法。 5. **持续集成/持续部署(CI/CD)**:理解Jenkins、Travis CI等工具的使用,以及在iOS项目中的自动化流程。 以上是iOS面试中的核心知识点,...

    基于 AList api 开发的 Android 和 iOS 客户端.zip

    测试也是开发流程的重要部分,包括单元测试、集成测试和 UI 自动化测试。最后,应用需要通过 App Store Connect 进行发布,这涉及构建版本、填写元数据、提交审核等步骤。 总的来说,这个项目提供了从 AList API ...

    ios学习路线iOS学习路线

    学会使用Xcode的内置工具进行单元测试、集成测试和UI测试,以及如何利用 Instruments 进行性能分析和内存泄漏检测。 在你掌握了以上基础知识后,可以尝试学习更高级的主题,如SwiftUI、Combine框架、Core Animation...

Global site tag (gtag.js) - Google Analytics