Mockito:どのように簡単にすべてのパラメータをあざけることなく、メソッドをスタブに
-
22-09-2019 - |
質問
私は私がスタブしたいメソッドを持っているが、それは多くのパラメータがあります。 どのように私はすべてのパラメータをからかっ避けるが、それでもメソッドをスタブすることができます。
例:
//Method to stub
public void myMethod(Bar bar, Foo foo, FooBar fooBar, BarFoo barFoo, .....endless list of parameters..);
解決
私は非常にあなたがMockitoを使用して抱えているものを問題に従っていません。例えば(インターフェースがmyMethod()
と呼ばれる仮定とJUnit 4を使用して)あなたは、あなたが興味のあることをメソッドにパラメータのみを確認することができますMyInterface
メソッドが含まれているインターフェースのモックを作成すると仮定します:
@Test
public void test() {
MyInterface myInterface = mock(MyInterface.class);
FooBar expectedFooBar = new FooBar();
// other testing stuff
verify(myInterface).myMethod(any(), any(), eq(expectedFooBar), any(), ...);
}
あなたは仕事に、このためのMockito法上の静的インポートを行う必要があります。 any()
マッチャは、検証時に渡されたどのような値を気にしません。
あなたは(それが唯一のNULLだ場合でも)あなたの方法ですべての引数のために何かを渡すことを避けることはできません。
他のヒント
使用mockito.any
このmyobjにmymethodは、インスタンスの文字列、文字列、バーを受け入れるかどうか。
の呼び出しをスタブに
Mockito.when(myojb.myMethod(Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class)))
.thenReturn(amockedobject);
STEVEDを確認するはすでに答えを与えた。
Mockito.verify(myojb).myMethod(
Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class)));
(「委任」a.k.a)すべての引数が、ユーザーが指定するもので、実際の方法とフィルを呼び出すラッパークラスを作成します。
そして、次の機会に、configオブジェクトにパラメータを移動するように求めるプロジェクトに対してバグを報告します。
所属していません StackOverflow