GMock を使用して、既存の Java プロジェクトに単体テストを追加しています。テストする必要があるメソッドが静的メソッドである複数の場所があり、テストしたいメソッド内で追加の静的メソッドを利用します。
クラスを部分的にモックできるようにしたいと思います。テスト用の最初のエントリ ポイント以外のクラスのほぼすべての静的メソッドです。
例えば:
class StaticClass {
static void method(String one) {
method2()
}
static void method(String one, String two) {
...
}
}
2 番目の静的メソッドをモックできることを願っていますが、そうするとすぐに method(String) が MIA になり、テストの実行が期待例外で失敗します。クラスを部分的にモックして、最初のメソッドの機能を維持しながら、2 番目のメソッドの静的アクセスをモックする方法はありますか?
また、metaClass プログラミングを使用してメソッドをモックしようとしましたが、メソッドをクロージャーに等しく設定すると、最初のメソッドが再び MIA になります。オーバーロードされたメソッドでこれを行う方法がわかりません。何か案は?