2012-02-23 9 views
1

GMockを使用して、既存のJavaプロジェクトにユニットテストを追加しています。テストが必要なメソッドが静的メソッドであり、テストするメソッド内で追加の静的メソッドを使用する複数の場所があります。GMockで複数の静的メソッドを持つ部分モッキングクラス

私はクラスを部分的に模擬することができます。テストのための初期エントリポイント以外のクラスの静的メソッドはほとんどすべて模擬できます。例えば

class StaticClass { 

     static void method(String one) { 
      method2() 
     } 

     static void method(String one, String two) { 
      ... 
     } 
    } 

が私の希望は、私は2番目の静的メソッドを模擬することができるということですが、できるだけ早く私がそうであるように、メソッド(String)をMIAに行くと、テストを実行すると期待例外で失敗します。最初のメソッドの機能を維持しながら、2番目のメソッドの静的アクセスを疑似してクラスを部分的にモックする方法はありますか?

また、メソッドを模擬するためにmetaClassプログラミングを使用しようとしましたが、メソッドをクロージャと同じに設定すると、最初のメソッドはMIAに再び入ります。オーバーロードされたメソッドでこれを行う方法がわかりません。何か案は?これは、具体的GMockが関与しないが、あなたのテストファイル内StaticClassを拡張し、そこ

答えて

0

Gmockでメソッドをオーバーライドすることができ

0

、それは自分の名前に応じて静的メソッドとマッチの期待を皮肉っ。オーバーロードされたメソッドをモックすることはできませんが、別のメソッドはモックできません。

GroovyのMOPと同じです。

関連する問題