See http://www.mockobjects.com
A way to get inside of code by passing in mock objects instead of real objects that implement the interface your code is expecting. Dynamic Mock Objects take the concept one step further and do not even require you to maintain some source code correspoding to that mock object.
