After calling Isolate.Fake.StaticMethods(Type) on my static class, I was banging my head as to why calls to that class that were not specified with Isolate.WhenCalled() were not throwing a TypeMockException. The documentation says that "Using this overload is equal to using Members.MustSpecifyReturnValues".
A few long debugging sessions later, I tried to explicitly specify that I want Members.MustSpecifyReturnValues by calling the overload Isolate.Fake.StaticMethods(Type, Members). Only then was I getting exceptions thrown.
A quick check with reflector confirmed it: in complete contrast with the documentation, Isolate.Fake.StaticMethods(Type) actually uses Members.ReturnRecursiveFakes!
The problem is, fixing the documentation will not alert the people who were relying on the Members.MustSpecifyReturnValues behavior, and are actually running bad tests (like me), and changing the behavior of the existing method to Members.MustSpecifyReturnValues breaks backwards compatibility and might cause existing passing tests to fail.
Though I think breaking existing tests to assert the correct behavior would be the lesser evil. Do you agree?
EDIT: Using Isolator 6.0.6.0