This document provides an overview of mocks and stubs in testing, using Ruby and RSpec examples. It establishes common terminology around mock objects, shows appropriate uses of mocks such as defining interfaces and simulating situations, and demonstrates abuses such as modifying the subject under test and creating "mock trainwrecks" that tie specs too tightly to implementation details. The goal is to understand best practices for using mocks to write clear, maintainable tests.