[解決済み】なぜMockitoは静的メソッドをモックしないのですか?
2022-03-30 06:09:11
質問
静的メソッドについてのスレッドをいくつか読み、静的メソッドの誤用や過剰な使用が引き起こす問題を理解したつもりです。しかし、なぜ静的メソッドをモックするのが難しいのか、その真相にはたどり着けませんでした。
PowerMockなど他のモッキングフレームワークはそれができるのに、なぜMockitoはできないのでしょうか?
を読みました。
この記事
しかし、著者はこの言葉に対して宗教的に反対しているようです。
static
私の理解不足かもしれませんが。
簡単な説明・リンクがあれば最高です。
解決方法は?
モックオブジェクトライブラリは通常、実行時にクラスを動的に生成してモックを作成することが多いからではないでしょうか( cglib ). つまり、実行時にインターフェースを実装するか(私が間違っていなければEasyMockがそうです)、モックするクラスを継承するか(私が間違っていなければMockitoがそうです)です。静的メンバは継承でオーバーライドできないので、どちらのアプローチも使えません。
静的なものをモック化する唯一の方法は モディファイ これは、継承よりも少し複雑だと思います。
一応、私の推測ではありますが...。
関連
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Mockitoで静的メソッドをモックする
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] モックとスタブの違いは何ですか?
-
[解決済み] Mockitoで静的メソッドをモックする