Testing in Apollo Kotlin
Apollo Kotlin provides the following tools to help with testing your code:
MockServer(experimental): an HTTP server that you can use to mock any responses
TestNetworkTransport(experimental): enables you to specify the GraphQL responses returned by
- Test builders (experimental): help instantiate your model classes by providing a DSL
IdlingResourcethat you can use in your Espresso UI Tests
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 test builders to instantiate the data in the responses.