Mockitoでprivateなフィールドをモック化する方法

以下のようにprivateなフィールドをモック化する場合、リフレクションを使うと出来るのだが、Mockitoにはそのリフレクションを簡単に使えるWhiteboxというユーティリティクラスがある。

public class MyClass {

    private final MyField field = new MyField();

    public void methodA() {
        field.methodB();
    }

}

Whiteboxクラスの使い方は以下(MyFieldクラスをモック化し、メソッドが呼ばれている事を検証する例)。

public class MyClassTest {

    MyClass sut;
	
    @Before
    public void setUp() throws Exception {
        sut = new MyClass();
        Whitebox.setInternalState(sut, "field", mock(MyField.class));
    }

    @Test
    public void testMethodA() {
        sut.methodA();
        verify((MyField)Whitebox.getInternalState(sut, "field")).methodB();
    }

}