2 回答

TA貢獻1842條經驗 獲得超21個贊
在調用方法中,您使用string.class[paramter]而不是 Class[][parameterArray]。
無需為 Test2.class 創(chuàng)建另一個對象,您已使用 @injectMocks 只需使用調用方法中的變量即可。
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貢獻1830條經驗 獲得超9個贊
寫作測試演示課程
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);
}
}
演示類的測試類
@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));
}
}
添加回答
舉報