nocilla

Introduction

Welcome to the documentation for Nocilla.

What is Nocilla?

Nocilla is a tool that allows you to stub network requests and provide mock data and responses, making it easier to test and simulate network behavior in your applications.

Installation

To get started with Nocilla, follow the steps below:

  1. Open your terminal.
  2. Navigate to your project directory.
  3. Run the following command:

pod 'Nocilla'

Usage

To use Nocilla in your project, follow the steps below:

Step 1: Importing Nocilla

In your source code file, import Nocilla:

import Nocilla

Step 2: Starting and Stopping Nocilla

Before each test or scenario where you want to use Nocilla, you need to start it. You should also stop it after the test or scenario is completed.

Lifecycle.beforeAll {
LSNocilla.sharedInstance().start()
}

Lifecycle.afterAll {
LSNocilla.sharedInstance().stop()
}

Step 3: Stubbing Network Requests

Now, you can stub your network requests and define the responses you want to return. For example:

let stub = stubRequest(.GET, "https://api.example.com/users/1")
stubResponse(200)
stubResponseBody("{\"id\": 1, \"name\": \"John Doe\"}")

// Your code that triggers the network request

expect(stub).to(haveBeenMade())

Additional Functions

Verifying Requests

You can verify whether a specific request has been made or not using the following syntax:

expect(request).to(haveBeenMade())

Clearing Stubs

If you want to clear all the stubs, you can use the following command:

LSNocilla.sharedInstance().clearStubs()

Advanced Usage

If you need to perform more complex scenarios, Nocilla offers additional functionality:

Dynamic Responses

You can use closures to generate dynamic responses based on the request:

let stub = stubRequest(.GET, "https://api.example.com/users/")
.andReturn {
return OHHTTPStubsResponse(
fileAtPath: OHPathForFile("users.json", type(of: self))!,
statusCode: 200, headers: ["Content-Type": "application/json"]
)
}

Delayed Responses

If you want to simulate a delay in the response, you can use the delay function:

let stub = stubRequest(.GET, "https://api.example.com/users/")
.andReturn(200)
.withDelay(2.0)

Conclusion

Congratulations! You now have a basic understanding of how to use Nocilla to stub network requests and provide mock data and responses in your applications. Start integrating Nocilla into your testing workflow and enjoy faster and more reliable tests!