2016-12-29 6 views
2

クラスユニットokhttp3のユニットテストを作成しようとしていますが、okhttp3.Responseクラスを嘲笑しています。okhttp3.Responseクラスが最終的にはどうですか?

最終的に宣言されており、ほとんどの模擬フレームワークは最終的なクラスを模擬することができません。 私はPowermockをこのために使うのではなく、

コードを見ると、Responseクラスの実際のインスタンスを作成してテストで使用することができますが、1つのメソッドを嘲笑するよりもはるかに多くのコードと読み込みが可能になります私の場合)。

okhttp3.Responseクラスの「final」修飾子、またはそれ以降のリリースでそれを削除する予定がある特定の理由はありますか?

+0

https://github.com/square/okhttp/issues?編集:一見すると、クラスを拡張可能にしたくないように見えるので、変更をもっと簡単に行うことができます。また、https://github.com/square/okhttp/tree/master/mockwebserverはあなたにとって有益でしょうか? 'MockResponse'クラスがあります。 –

+1

@Slanec github.com/square/okhttp/issuesは、「質問」のスタックオーバーフローを明示的に参照しています。私は、okhttpクライアントを使用してこのコードを打つことについての単体テストを書いた最初の人だとは信じられません。 – vap78

+0

ああ、そうだね。あなたには良い解決策があるかもしれませんが、まず達成しようとしていることとその理由を述べる必要があります。なぜあなたは 'Response'を嘲笑していますか?' MockWebServer'と 'MockResponse'はあなたのために十分に機能しますか?そうでない場合、なぜですか? –

答えて

8

Responseは値クラスであるため、決して嘲笑すべきではありません。 Responseに含めるデータを含むResponse.Builderのインスタンスを作成できます。

修飾子finalを削除する予定はありません。

関連する問題