2 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
在調(diào)用方法中,您使用string.class[paramter]而不是 Class[][parameterArray]。
無(wú)需為 Test2.class 創(chuàng)建另一個(gè)對(duì)象,您已使用 @injectMocks 只需使用調(diào)用方法中的變量即可。
public class JunitTestCases{
@Mock
Test test;
@InjectMocks
Test2 test2;
@Test
public void Oncall{
MockitoAnnotations.initMocks(this);
Class<?>[] params = new Class<?>[]{String.class};
Method method=Test2.class.getDeclaredMethod("method",params);
method.setAccessible(true);
method.invoke(test2, "data");
}
}

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
寫(xiě)作測(cè)試演示課程
public class PowerMockDemo {
public Point callPrivateMethod() {
return privateMethod(new Point(1, 1));
}
private Point privateMethod(Point point) {
return new Point(point.getX() + 1, point.getY() + 1);
}
}
演示類(lèi)的測(cè)試類(lèi)
@RunWith(PowerMockRunner.class)
@PrepareForTest(PowerMockDemo.class)
public class PowerMockDemoTest {
private PowerMockDemo powerMockDemoSpy;
@Before
public void setUp() {
powerMockDemoSpy = PowerMockito.spy(new PowerMockDemo());
}
@Test
public void testMockPrivateMethod() throws Exception {
Point mockPoint = mock(Point.class);
PowerMockito.doReturn(mockPoint)
.when(powerMockDemoSpy, "privateMethod", anyObject());
Point actualMockPoint = powerMockDemoSpy.callPrivateMethod();
assertThat(actualMockPoint, is(mockPoint));
}
}
添加回答
舉報(bào)