Effective use of Mock Objects can make apparently untestable code testable. This is a good thing: testing not only reduces bug rates, but structuring code to be testable improves the design of the overall system, making future maintenance and enhancements easier.

This talk concentrates on how Mock Objects can be used to allow you to test code that relies on things apparently outside your control: databases, incoming user requests, timers, web services, and so on. We look at different strategies for mock objects, from simple do-it-yourself implementations through to full-blown frameworks. We also look at simple dynamic techniques which reduce the time needed to implement and maintain the mock object code.