We will use the terms mock and stub interchangeably in our discussions,
having noted the differences between them in the discussion.

We can't simply reuse a mock as that would make mocks complex with
each growing demand on them.

It is not wise to put logic and grow a mock as this tends to make
mocks hard to maintain over time.

We have to create multiple mocks, potentially one per test, just to satisfy 
the expectations of the code as exercised in each specific test.

This can get quite overwhelming in C# as we don't quite have anonymous inner 
classes (though we will find a way to sneak them in later using Fakes).

This is one reason to use mocking libraries, to alleviate this problem in C#.