web-dev-qa-db-ja.com

Mockito / Powermockitoモックプライベートボイドメソッド

Mockitoとpowermockを使用して引数を取らないプライベートvoidメソッドをモックする必要があります。

このメソッドは、スパイであるインスタンスに属しています。

私はこれを行う必要があるという事実が悪いコードを示唆していることを知っていますが、私はユニットテストをあるテストフレームワークから別のテストフレームワークに変換する古いプロジェクトで働いています。

誰かが何か提案があればそれは大いにありがたいです。

ありがとうございました!

これまで私はこれを試しました:

PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));

しかし、私はこのエラーを受け取ります:

No method found with name 'method' with parameter types: [ <none> ] 
7
Mat

Whitebox(Powermockに付属)は試していませんが、次のようなものを試します。

@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class MyClassTest {
    private MyClass myClass;

    @Before
    public void setup() {
        myClass = PowerMockito.spy(new MyClass());
        PowerMockito.doNothing().when(myClass, "myPrivateMethod");
    }
    //Tests..
}

..私が覚えている限り..

13
Tobb