This document discusses different styles and tools for using mocks in unit testing. It covers classic mock style which uses stubs and interfaces to isolate dependencies. Mockist style uses mock frameworks to set expectations and verify behavior. Several mock frameworks are described, including EasyMock, JMock, Mockito and JMockit. Advantages of mocks include test isolation and ability to test non-state-changing objects. Disadvantages include additional complexity, coupling tests to implementations, and potential for overuse of mocks.