Mocking frameworks are useful for creating mock objects that isolate the code under test from its surrounding software environment. Some mocking frameworks cannot mock non-virtual methods, so they require that you create an
Interface for each class, if you don't want to make the methods
How do you distinguish those Interfaces from the "real" ones? That is, if you have a public API, do you name the interfaces that you intend your customer to use something else, or do you hide the testing Interfaces in a separate assembly or namespace?
As an aside, is it really necessary to create all those Interfaces? I don't like the idea of making all my methods
virtual, but I really don't like the idea of creating that many interfaces just to make them accessible to a mocking framework.