TDD is a great way to do development, and using Mock Objects is almost a requirement for doing TDD well. Unfortunately, Mock Objects often lead to unnecessary complexity and violation of several TDD principles (YAGNI and Do The Simplest Thing That Could Possibly Work). Eli Lopian has come up with a workaround for this, that enables you to continue to Do The Simplest Thing that Could Possibly work and remember YAGNI and yet use Mock Objects.
Check it out.