美文网首页一入iOS海iOS Developer自动化与单元测试
iOS如何测试没有回调方法的异步函数

iOS如何测试没有回调方法的异步函数

作者: 韧卓 | 来源:发表于2017-03-02 16:32 被阅读23次
  • iOS单元测试的重要性无需多言。XCTest作为苹果的官方测试框架,自从引入了expectations之后,很好地解决了异步函数测试的问题。
  • 如同官方示例所述,通过创建XCTestExpectation实例,并在回调block中fulFill,可以很好地处理网络请求回调的事件。
  • 但是,如果被测的异步函数没有回调,要怎么测试呢?
  • 以下代码演示了通过经典的GCD延迟方法dispatch_after,结合XCTestExpectation,实现测试含有私有private异步方法或者属性@property的目的。

objc
DataSource *dataSource = [[DataSource alloc] init];
[dataSource loadData];
XCTestExpectation *expectation = [self expectationWithDescription:@"Dummy expectation"];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
XCTAssert(dataSource.dataArray.count > 0, @"Data source has populated array after initializing and, you know, giving it some time to breath, man.");
[expectation fulfill];
});
[self waitForExpectationsWithTimeout:20.0 handler:nil];
objc

相关文章

  • iOS如何测试没有回调方法的异步函数

    iOS单元测试的重要性无需多言。XCTest作为苹果的官方测试框架,自从引入了expectations之后,很好地...

  • 异步的实现

    异步的三种实现方式: 回调函数事件Promise 回调函数 回调函数不一定是异步 但是异步一定是回调函数。 事件 ...

  • 14.回调地狱与 Promise

    回调地狱 为了保证异步代码的执行顺序,将异步代码嵌套到回调函数中,当异步的方法多了,就会产生回调地狱(callba...

  • 含答案的面试题总结

    1. 说说JavaScript中有哪些异步编程方式? 1. 回调函数 回调函数是异步编程的基本方法。其优点是易编写...

  • 同步,异步

    js异步操作的方法:1.回调函数就是把一方法当作参数传到另一个方法里。有两种回调方式:同步回调和有异步回调 同步回...

  • Laya Handler

    不管是开发游戏还是其他应用或者Web,经常会使用到异步方法,使用异步函数的时候需要有回调函数。比如JS中回调函数的...

  • ES6学习--异步编程--Generator

    异步编程 : (异步编程的语法目的就是让异步编程更像同步编程) 回调函数利用回调函数实现异步编程本身没有问题, 问...

  • 07_Node.js Event

    一、回调函数 callback 1、回调函数 Node.js 异步编程的直接体现就是回调,异步编程依托于回调来实现...

  • 从回调函数到 async await,理清异步编程解决方案

    异步解决方案历程 1. 回调函数 回调函数是最开始的异步解决方案,在异步代码执行完后去执行回调函数 这样做有几个缺...

  • Node Native (6) fs

    异步方法的最后一个参数都是一个回调函数。 传给回调函数的参数取决于具体方法,但回调函数的第一个参数都会保留给异常。...

网友评论

    本文标题:iOS如何测试没有回调方法的异步函数

    本文链接:https://www.haomeiwen.com/subject/aqlkgttx.html