Test Doubles: Stubs vs Mocks vs Spies