This is not really a limitation of fakes, but it is not a mistake. What you need to know is that there are plugs and gaskets.
The support is simple: it is a class that implements or extends a class, overriding each method using the delegation property, and a flag that determines whether it should then call the base class (note: this flag is for the entire stub, not for the method). You use them to inject dependencies, as they allow you to find all your logic in lambdas in code, rather than in the generated class. Because they extend non-interfaces, private classes cannot be drowned out.
Gaskets are more complex because they apply to any instance of a particular type. Not sure exactly how this is done, but what matters to you is that since the interface cannot have an instance, it cannot have spacers. This is great since you must use a stub. They are dangerous because with the help of a pad, you redefine the result of the function in the whole shimscontext and almost exclusively when something breaks that you do not have access - something that would be better to enter.
Therefore, I would not worry about warnings. They are not very important, just make sure you know what is going on.
Magus
source share