Unit tests exercise individual classes in isolation by replacing collaborators with mock objects. Mocks simplify testing by checking behavior rather than state. Popular mocking libraries like EasyMock and Mockito dynamically generate mocks at test runtime to verify expectations and behavior without manually writing stubs. While classical TDD uses real objects, mockist TDD always uses mocks for collaborators, which can promote looser coupling and interfaces in code design.