Auto-Recursive Fakes

By default, every fake object is auto-recursive. This means that each property and method of a fake object returns a fake object.

In addition to productivity gains of faking a whole object tree in one statement, recursive fakes reduce the decoupling level. If a test concentrates on one branch of the production code, and another branch of the object model is changed, the test stays intact.