まず、私はJava開発者ではなく、現在C#で開発していることを開示します。そのため、Javaに関して私が行う仮定やステートメントは、正しくないか、情報が不十分である可能性があります。
モックオブジェクトを使用して.Netで単体テストを作成する場合、99%の確率でインターフェイスをモックします。クラスをモックすることは可能ですが、仮想(つまりモック可能)メソッドを制御できるのはあなただけです。
Javaでは、メソッドはデフォルトで仮想であるため、クラスのモックはインターフェイスのモックとまったく同じになると思います。これは、すべてがモック動作でオーバーライドされるためです。
それで、Javaのインターフェース(および結果として単体テストのモックインターフェース)に依存することは依然としてベストプラクティスですか、それともほとんどのJava開発者はクラスを使用して型の数を減らしますか(インターフェースは必要ありません)?