Skip to content

materik/cocoapod-stubborn

Repository files navigation

Simple HTTP mocking framework.

Install

pod 'Stubborn'

Usage

Start

This is done automatically when you add a stub

Stubborn.start()

Success

Stubborn.add(url: ".*/users") { request in
    print(request.method)
    print(request.url)
    print(request.body)
    print(request.headers)
    print(request.queryString)
    print(request.numberOfRequests)

    return [
        "users": [
            [
                "id": 123,
                "username": "materik"
            ],
            [
                "id": 124,
                "username": "leo"
            ]
        ]
    ]
}

Failure

Stubborn.add(url: ".*/users", error: Stubborn.Error(400, "Something went wrong"))

Delayed

Wait a second before responding

1  Stubborn.add(url: ".*/users", dictionary: ["success": true])

From JSON file

Stubborn.add(url: ".*/users", resource: "MyResponse")

Handle unhandled requests

Stubborn.unhandledRequest { request in
    print(request.method)
    print(request.url)
    print(request.body)
    print(request.headers)
    print(request.queryString)
}

Reset

Stubborn.reset()

Example

QueryString(key: "page", value: "1")  Stubborn.add(url: ".*/get", dictionary: ["result": 1])
QueryString(key: "page", value: "2")  Stubborn.add(url: ".*/get", dictionary: ["result": 2])

Alamofire.request("https://httpbin.org/get?page=1").responseJSON {
print($0.value) // ["result": 1]
}

Alamofire.request("https://httpbin.org/get?page=2").responseJSON {
print($0.value) // ["result": 2]    
}