Wednesday 21 March 2018

Yes. No. NULL. Aardvark.

We're building something at the moment that relies on several services talking to each other.

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.

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.