We've already established contracts between all of them so everyone knows what format to expect.
Work has started on all of these systems in parallel, so we've got a lot of stubs and mocks.
So how do we know it's all going to work when we start actually passing data around?
As well as a contract that defines what the data being passed around will look like, we've also decided on some baseline scenarios for the unit and integration tests.
Introducing...
Yes. No. NULL. Aardvark.
| Yes. | Happy Path! Assuming all goes well, you get a correctly formatted response with the data you expect. |
| No. | Alt Flow(s). Still a correctly formatted response, but with data that causes something different to happen... |
| Null. | No response. What happens if a service isn't there? How long do you wait? What do you return? |
| Aardvark. | An unexpected response. Something we haven't considered in our alt flows. Do you fail gracefully? Do we get an aardvark alert or log event? |
It's not totally foolproof. And it's certainly not exhaustive. But it means that we know we've at least got the basics covered while we are building. And it's a reminder to add some tests that we can expand on later.