Я новичок в Mockito и PowerMock. Мне нужно протестировать некоторый старый код, который имеет частный метод, который я должен издеваться. Я рассматриваю возможность использования частичной частичной частичной функции PowerMock, я попытался воспроизвести пример с link, но это не удалось. Я понятия не имею, что с этим не так. Не могли бы вы это проверить? БлагодаряЧастичный макет частного метода с PowerMock-Mockito
Вот класс-быть проверены:
package test;
public class ClassWithPrivate
{
private String getPrivateString() {
return "PrivateString";
}
private String getPrivateStringWithArg(String s) {
return "PrivateStringWithArg";
}
}
И это тестовый код:
package test;
import static org.mockito.Mockito.*;
import static org.mockito.Matchers.anyString;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.powermock.api.support.membermodification.MemberMatcher.method;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.api.support.membermodification.MemberMatcher;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassWithPrivate.class)
public class ClassWithPrivateTest {
@Test
public void testGetPrivateString() {
ClassWithPrivate spy = PowerMockito.spy(new ClassWithPrivate());
PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());
}
}
EDIT Когда я попытался скомпилировать код, его не удалось со следующими ошибками:
ClassWithPrivateTest.java:26: unreported exception java.lang.Exception; must be caught or declared to be thrown
PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());
^
ClassWithPrivateTest.java:26: unreported exception java.lang.Exception; must be caught or declared to be thrown
PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());
Для меня тест работает так, как ожидалось. Что вы имеете в виду, «это не удалось». Есть ли исключение, когда вы запускаете тест? Затем разместите его здесь. –
@ChristopherRoscoe: привет, когда я скомпилировал его, он дал мне ошибки, как указано выше. Вы скомпилировали его успешно? благодаря – thirty