Library for replacing part/all HTTP response based on Nocilla.
Objective-C Ruby
Switch branches/tags
Pull request Compare This branch is 5 commits ahead of hypoyao:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Categories
Hooks
Request
Response
GYHttpMock.h
GYHttpMock.m
GYHttpMock.podspec.bak
GYMatcher.h
GYMatcher.m
GYMockURLProtocol.h
GYMockURLProtocol.m
LICENSE
README.md
ZBJHttpMock.podspec

README.md

GYHttpMock

Library for replacing part/all HTTP response based on Nocilla.

Features

  • Support NSURLConnection, NSURLSession.
  • Support replacing totally or partly HTTP response
  • Match requests with regular expressions.
  • Support json file for response

Installation with CocoaPods

To integrate GYHttpMock into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'GYHttpMock'

Then, run the following command:

$ pod install

Usage

mocking a request before the real request anywhere.

Mock a simple request

It will return the default response, which is a 200 and an empty body.

mockRequest(@"GET", @"http://www.google.com");

Mock requests with regular expressions

mockRequest(@"GET", @"(.*?)google.com(.*?)".regex);

Mock a request with updating response partly

mockRequest(@"POST", @"http://www.google.com").
isUpdatePartResponseBody(YES).
withBody(@"{\"name\":\"abc\"}".regex);
andReturn(200).
withBody(@"{\"key\":\"value\"}");

Mock a request with json file response

mockRequest(@"POST", @"http://www.google.com").
isUpdatePartResponseBody(YES).
withBody(@"{\"name\":\"abc\"}".regex);
andReturn(200).
withBody(@"google.json");
Examle for update part response
orginal response:
{"data":{"id":"abc","location":"GZ"}}

updatedBody: google.json
{"data":{"time":"today"}}

final resoponse:
{"data":{"id":"abc","location":"GZ","time":"today"}}

All together

mockRequest(@"POST", @"http://www.google.com").
withHeaders(@{@"Accept": @"application/json"}).
withBody(@"\"name\":\"foo\"".regex).
isUpdatePartResponseBody(YES).
andReturn(200).
withHeaders(@{@"Content-Type": @"application/json"}).
withBody(@"google.json");

Add log

[GYHttpMock sharedInstance].logBlock = ^(NSString *logStr) {
    NSLOG(@"%@", logStr);
};

License

GYHttpMock is released under the MIT license. See LICENSE for details.