I have a couple years of experience of TDD under my belt, but it's only recently that I've felt like I am a relatively decent practitioner of it. I attribute this to forcing myself to take the plunge into mocking, and the knowledge of patterns and loosely-coupled design that I've gained from it.
You see, I work on a pretty large and complex ASP.Net webforms product, and tests were introduced late into the development cycle of the initial release. We favored integration testing with real data sources over actual unit tests. While I did write some tests, I knew that our product was not very testable by design.
Recently we put together a public facing API for programming against the product, that we were able to build from scratch. This was a natural opening to apply test driven practices and start building unit tests from the get-go. Due to the service oriented nature of the data that the product consumes, I soon found myself realizing that I needed mocks in a big way. I gritted my teeth and dove head-first into Rhino.mocks.
Several weeks down the road, it was obvious that Rhino just isn't right for our environment. The learning curve is too steep to win quick success with all our developers (and therefore by extension, our project managers). I began looking for another framework.
This led me on a frustrating research mission to find the differences between frameworks without actually trying them all. Due to a lack of in-depth comparisons of the actual capabilities of the various mocking frameworks, I've ended up putting together this chart. I'm hoping it helps some people. My interest is very high in this arena, so I will be keeping it up to date.
(Just for interest's sake -- we ended up choosing Moq, due to the ease of the API. The philosophy of Moq jives perfectly with our relatively fast-paced and efficient development environment. We don't care about purism -- we care about getting it done.)
The above observations were gleaned from many web pages, documentation repositories and blog posts, and reflect my limited understanding of each framework. There may be errors. If you think I'm wrong, or you can think of other capability aspects that I've overlooked, please let me know!