Mockito:どのように簡単にすべてのパラメータをあざけることなく、メソッドをスタブに

StackOverflow https://stackoverflow.com/questions/2340801

質問

私は私がスタブしたいメソッドを持っているが、それは多くのパラメータがあります。 どのように私はすべてのパラメータをからかっ避けるが、それでもメソッドをスタブすることができます。

例:

//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オブジェクトにパラメータを移動するように求めるプロジェクトに対してバグを報告します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top