# Testing Tdd London Mock Management

> Sub-skill of testing-tdd-london: Mock Management (+2).

- Skill: `vamseeachanta/testing-tdd-london-mock-management` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vamseeachanta/testing-tdd-london-mock-management`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vamseeachanta/testing-tdd-london-mock-management/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: vamseeachanta (https://skillmd.com/u/vamseeachanta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vamseeachanta/testing-tdd-london-mock-management

---


# Mock Management (+2)

## Mock Management

- Keep mocks simple and focused on single behavior
- Verify interactions, not implementation details
- Use `jest.fn()` for behavior verification
- Avoid over-mocking internal details
- Reset mocks between tests


## Contract Design

- Define clear interfaces through mock expectations
- Focus on object responsibilities and collaborations
- Use mocks to DRIVE design decisions
- Keep contracts minimal and cohesive


## Common Pitfalls


```typescript
// BAD: Over-mocking internal details
const mock = {
  _internalState: {},
  _privateMethod: jest.fn()  // Don't mock private methods
};

// GOOD: Mock only public interface
const mock = {
  publicMethod: jest.fn().mockReturnValue(expectedResult)
};

// BAD: Verifying too many implementation details
expect(mock.method).toHaveBeenCalledTimes(3);  // Fragile

// GOOD: Verify essential behavior
expect(mock.method).toHaveBeenCalledWith(expectedArgs);
```

