# API testing

Test your Zato services without running a server.

## Get started

A step-by-step guide to unit testing Zato services - installation, mocking and assertions, everything you need to test your services.

[Tutorial](https://zato.io/docs/api-testing/tutorial.html)

test\_crm.py

```
# Test services without a server
self.set_response('crm.api',
    {'name': 'Alice Johnson'})
service = self.invoke(GetCustomer,
    customer_id='CUST-001')
service.response.payload.name
'Alice Johnson'

$ ./myproject/impl/scripts/run-tests.sh
Ran 1 test in 0.002s
```

## Get started

[Tutorial Unit testing Zato services step by step - installation, mocking and assertions.](https://zato.io/docs/api-testing/tutorial.html)

## What to test

[Invoking services Services that call other services - test them without a server.](https://zato.io/docs/api-testing/services.html) [REST Outgoing REST API calls - status codes, headers and request matching.](https://zato.io/docs/api-testing/rest.html) [SQL Database queries and stored procedures - test them against simulated SQL connections.](https://zato.io/docs/api-testing/sql.html) [LDAP LDAP directory lookups and searches - test them without a directory server.](https://zato.io/docs/api-testing/ldap.html) [Jira Jira cloud API calls and JQL queries - test them in unit tests.](https://zato.io/docs/api-testing/jira.html) [OData OData reads and writes - test them against SAP and Microsoft systems.](https://zato.io/docs/api-testing/odata.html) [Microsoft 365 SharePoint, OneDrive, Teams, Calendar and other Microsoft 365 APIs in tests.](https://zato.io/docs/api-testing/ms365/index.html)

## Automation

[CI/CD integration Automated testing in Azure DevOps, GitHub Actions and other CI/CD pipelines.](https://zato.io/docs/api-testing/ci-cd.html)
