iOS网络接口的单元测试

作者: 一双鱼jn | 来源:发表于2016-10-14 18:51 被阅读742次

网络请求的单元测试与普通单元测试的区别

网络请求为异步方式进行,发起请求之后就继续向下执行,无论请求是否成功,单元测试都会完成

单元测试中对于异步进行的方法的处理

在单元测试中遇到异步方式时,执行完异步方法后阻塞当前线程,等异步方法执行完成后,再向下执行,校验返回数据

Demo 如何阻塞线程,等待数据返回

1 声明一个XCTestExpectation对象
2 强引用该XCTestExpectation对象。(用于在请求成功的回调方法中使用该对象触发指定方法)
3 执行异步网络请求方法
4 等待数据成功返回

#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>

#import "NSObject+YPApiService.h"
#import "YPApiServiceKit.h"

@interface YouPiaoTests : XCTestCase<YPApiServiceKitDataSource>
@property (nonatomic,strong) XCTestExpectation *e;
@end

@implementation YouPiaoTests

- (void) testIndexList {
    
    // 1 声明XCTestExpectation对象
    XCTestExpectation *e = [self expectationWithDescription:@"des"];
    
     // 2 对该对象强引用 
    self.e = e;
    
     // 3 发起网络请求
    [self api_Post_IndexList];
    
    // 4 等待 XCTestExpectation对象触发fulfill方法,或超时之后再向下执行
    [self waitForExpectationsWithTimeout:10 handler:^(NSError * _Nullable error) {
        NSLog(@"%@",error);
    }];
}

// 网络请求响应成功的回调方法 
- (void)serverResponseSuccess:(YPBaseModel *)responseModel {
    NSLog(@"%@",responseModel);
    [self.e fulfill];
}

@end

相关方法

通过发送通知来触发继续执行

声明
self expectationForNotification:@"RSBaseTest" object:nil handler:nil];

等待执行
[self waitForExpectationsWithTimeout:30 handler:nil];} while (0);

发送通知
[[NSNotificationCenter defaultCenter]postNotificationName:@"RSBaseTest" object:nil];

相关文章

  • iOS网络接口的单元测试

    网络请求的单元测试与普通单元测试的区别 网络请求为异步方式进行,发起请求之后就继续向下执行,无论请求是否成功,单元...

  • iOS架构篇-3 网络接口封装

    iOS架构篇-3 网络接口封装 关键字:iOS,网络接口封装,Alamofire,swift 网络接口API通常都...

  • iOS开发——单元测试

    iOS开发——单元测试 iOS开发——单元测试

  • 为网络接口编写单元测试(实例篇)

    上篇《iOS开发 | 如何为网络接口编写单元测试》发表后,收到不少小伙伴的简信,提出了不少问题,其中一个典型问题是...

  • IOS单元测试实践

    单元测试主要是检测某个方法或者接口是否可以正常使用 一.环境搭建 略 二.测试工具 IOS自带的单元测试工具:IO...

  • 单元测试

    内容 单元测试 参考文章: [iOS单元测试系列]单元测试框架选型 iOS单元测试:Specta + Expect...

  • App Programming Guide for iOS -&

    调整你的网络代码 iOS中的网络栈包含几个用于与iOS设备的无线电硬件通信的接口。主要的编程接口是CFNetwor...

  • 【开发技巧】单元测试

    iOS XCTest单元测试 iOS开发:XCTest单元测试(附上一个单例的测试代码) [iOS单元测试系列]单...

  • 关于iOS单元测试几点Tips

    相关文章: 1、走出 iOS 单元测试的困境2、iOS单元测试--百度Hi iOS团队技术周报 一、单元测试有什么...

  • NSURLSession

    拷贝# IOS网络访问之NSURLSessionNSURLSession是IOS7中新添加的网络访问接口,作用与N...

网友评论

    本文标题:iOS网络接口的单元测试

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