ios-测试/模拟/打包ios-第三方框架/SDK

iOS模拟网络之OHHTTPStubs库的介绍与使用

2016-09-28  本文已影响2157人  天清水蓝

在你的服务器没有准备妥当或者在你需要模拟数据进行本地开发时,OHHTTPStubs是一个很好的可以加速测试和开发的工具。OHHTTPStubs可使用伪造的网络数据和模拟的缓慢网络来测试你的应用程序,从而检测你的应用程序在不佳的网络环境中的行为,并使用伪造的网络数据编写单元测试。

功能列表:

  1. 模拟慢网络,检查你的应用在差网络情况下的行为
  2. 写单元测试,模拟返回数据

基本用法

  1. 拦截域名为mywebservice.com的http请求,并返回wsresponse.json文件里面的数据,可以设置网络状态吗,请求头格式,以及请求时间和响应时间

    [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) {
      return [request.URL.host isEqualToString:@"mywebservice.com"];
    } withStubResponse:^OHHTTPStubsResponse*(NSURLRequest *request) {
      // Stub it with our "wsresponse.json" stub file (which is in same bundle as self)
      NSString* fixture = OHPathForFile(@"wsresponse.json", self.class);
      return [OHHTTPStubsResponse responseWithFileAtPath:fixture
                statusCode:200 headers:@{@"Content-Type":@"application/json"}];
    }];
    

    OHHTTPStubsResponse可以指定为文件,图片,data数据,或者json对象。比较灵活

自动加载

Thanks to method swizzling, OHHTTPStubs is automatically loaded and installed both for:

If you need to disable (and re-enable) OHHTTPStubs — globally or
per NSURLSession — you can use [OHHTTPStubs setEnabled:] / [OHHTTPStubs setEnabled:forSessionConfiguration:].

注意事项

提交至苹果商店

使用OHHTTPStubs的应用可以提交至苹果商店,因为它不包含私有的API。
但是一般情况下你使用它都是在开发阶段,而且当你提交苹果商店的时候并不需要他模拟网络,所以当你的工程包含OHHTTPStubs类库的时候你要小心,你可以在提交商店的时候移除该类库或者使用#if DEBUG用来区分在正式环境下关闭它。

https://github.com/AliSoftware/OHHTTPStubs

上一篇 下一篇

猜你喜欢

热点阅读