You don't have to introduce new interface if you are 100% sure that the class you are mocking will not have polymorphous behavior in the future.
Say if you are mocking on a DatabaseHelper class which help you access data from SQL Server, and you are sure you(or your sucessor developers) definitely won't let it support any additional Database(MySql,Oracle,etc) in the future, you can mock the DatabaseHelper directly without introduce a new interface.
However, most of the time, you can't predict the future, so you'd better introduce an interface for future extension.
we don't use interface just for the sake of testability. It is the pursuing of testability that forces us to write extensible/maintainable code by introduce new interface.
Also, why should we avoid static members
Static members is global state variable in its essence . Code units that sharing/access global state are usually highly-coupled, which is a threat for maintainability, thread-safety, and isolated unit testing,etc.