Explain your approach to writing comprehensive unit tests and integration tests for highly distributed systems.