What problem does it solve? Test suites often drown in mocks that break on every internal rename and verify nothing real. This Skill guides the choice between stub, fake, spy, and strict mock so each double matches what the test actually verifies, and flags suites suffering from overmocking. ## Core Features & Use Cases - Double-type selection: Maps verification targets to double types — state verification to stubs and fakes, interaction contracts to spies, and must-not-happen requirements to strict mocks. - Boundary guidance: Recommends doubling owned interfaces and wrapping vendor SDKs in thin adapters instead of mocking 40-method third-party clients. - Fake verification: Prescribes contract tests that run the same suite against both the fake and the real implementation to prevent drift. - Use Case: A suite with 30 tests each patching six Stripe SDK methods fails 22 tests on an internal rename. The fix introduces a 3-method PaymentGateway adapter with a FakeGateway, nightly contract tests against real Stripe test mode, and one strict mock for double-charge protection. ## Quick Start Ask the AI to review your test file and recommend whether each mocked dependency should be a stub, fake, spy, or strict mock based on what the test verifies.