So far I have used to write interfaces to those classes I want to mock/fake. Reason for that is that those classes don't have any virtual method to overwrite. But resently I have figured out that I could use virtual methods also.
When should I use virtual methods rather than interfaces?
Should I even make most of methods virtual to make faking easier in the future?