iOS提升study代码改变世界

开源的http单元测试库Nocilla介绍

2014-12-20  本文已影响406人  windgo

如果进行移动互联网的开发,客户端和服务器端在开发过程中的解耦很重要,如果任何调试,都要等待服务端完成之后才能进行,那将大大的拖累研发进度,所以通过模拟HTTP服务器,再加上单元测试技术,辅助客户端的开发就成为一项必要的工作。

1. Nocilla库是干什么的?

本文内容来主要来自于Nocilla的readme文件, Nocilla是一个开源的http stub库: github项目地址
他的用途是在iOS和OSX系统上对HTTP进行stub,简化发出HTTP请求的单元测试。
Nocilla借鉴了WebMock库,使用了这篇文章中所采用的方法。

2. 功能特性

3. 安装方法

4.使用方法

用法主要是
下面的代码是Objective-c的, 使用Kiwi描述。

4.1 通用部分:

在使用Nocilla的文件里:
<code>#import "LSNocilla.h"</code>
开始:
<code>[[LSNocilla sharedInstance] start];</code>
清理stub:
<code> [[LSNocilla sharedInstance] clearStubs];</code>
结束:
<code> [[LSNocilla sharedInstance] stop];</code>

4.2 Stubbing请求

4.3 模拟响应

4.3使请求失败

这会调用failure handler(callback, delegate...不管已使用什么HTTP client),返回特定的error
<code>
stubRequest(@"POST", @"https://api.example.com/dogs.json").
withHeaders(@{@"Accept": @"application/json", @"X-CUSTOM-HEADER": @"abcf2fbc6abgf"}).
withBody(@"{"name":"foo"}").
andFailWithError([NSError errorWithDomain:@"foo" code:123 userInfo:nil]);</code>

4.4 意料之外的请求

如果有些请求没有被stubbed,却发出了,Nocilla不会让它传到真实的网络上。请求会失败,并且产生一个异常,异常提供了错误的信息以及解决的方法,甚至提供了如何stub这个请求的代码片段

5. Nocilla谁在用.

Groupon
Pixable
Jackthreads
ShopKeep
Other alternatives
ILTesting
OHHTTPStubs
Contributing
Fork it
Create your feature branch
Commit your changes
Push to the branch
Create new Pull Request

上一篇下一篇

猜你喜欢

热点阅读