Testing in Apollo Kotlin
Overview
Apollo Kotlin provides the following tools to help with testing your code:
MockServer
(experimental): an HTTP server that you can use to mock any responsesTestNetworkTransport
(experimental): lets you specify the GraphQL responses returned byApolloClient
Data builders (experimental): help instantiate your model classes by providing a DSL
MockServer
creates a full HTTP server. It requires minimal changes to your production code (you only need to change serverUrl
), which means you can use the same ApolloClient
for tests and production. MockServer
is also useful for testing specific server behaviors, such as error cases, HTTP headers, and timeouts.
TestNetworkTransport
bypasses HTTP calls altogether and returns predefined GraphQL responses. It requires more modifications to your production code, but you can use it in lighter tests that don't need to create a server. You can use data builders to instantiate the data in the responses.