请参阅
Whitebox.setInternalState(...)。
例如-给定的类
A需要测试:
public class A { private B b; public A() { b = new B(); } public void doSomething() { b.doSomething(); }}具有以下私有实例
B:
public class B { public void doSomething() { // some long running, resource intensive process... System.out.println("Real B.doSomething() was invoked."); }}然后
Whitebox可以用来设置的私有状态,
A以便可以对其进行测试:
import static org.mockito.Mockito.doNothing;import static org.mockito.Mockito.verify;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.mockito.Mock;import org.mockito.runners.MockitoJUnitRunner;import org.powermock.reflect.Whitebox;@RunWith(MockitoJUnitRunner.class)public class ATest { @Mock private B b; private A a; @Before public void prepareTest() { donothing().when(b).doSomething(); a = new A(); Whitebox.setInternalState(a, B.class, b); } @Test public void doSomething() { a.doSomething(); verify(b).doSomething(); }}


