1. Testing the domain and use cases without mocks

    In-memory fakes instead of mocks, tests that check state instead of calls, contracts shared between adapters, and the shape of the test pyramid in Clean Architecture.