Используемая версия JMockit: 1.21 У меня такой интерфейс. TestInterface:Jmockit: проверить метод вызова поля интерфейса
public interface TestInterface {
boolean callMethod();
}
TestClass есть поле представляет собой экземпляр этого интерфейса TestClass:
public class TestClass {
private final TestInterface inner = new TestInterface() {
@Override
public boolean callMethod() {
subMethod();
return false;
}
};
public void subMethod() { System.out.println("Sub method");
};
}
Я пытаюсь проверить метод на поддельных interfacein этого учебника вызова. http://jmockit.org/tutorial/Faking.html#interfacesd
Метод испытания.
public class TestInterfaceTest {
TestClass sut;
@Before
public void setUp() {
sut = Deencapsulation.newInstance(TestClass.class);
}
@Test
public void mockAllClassesImplementingAnInterface() {
TestInterface testInterface = new MockUp<TestInterface>() {
@Mock
public boolean callMethod(Invocation inv) {
inv.proceed(); // throw exception here -> Will my expected method be called here?
return true;
}
}.getMockInstance();
Deencapsulation.setField(sut, "INTER", testInterface);
new NonStrictExpectations() {
{
Deencapsulation.invoke(sut, "subMethod");
}
};
Boolean result = Deencapsulation.invoke(Deencapsulation.getField(sut, "INTER"), "callMethod");
assertTrue(result);
new Verifications() {
{
Deencapsulation.invoke(sut, "subMethod"); times = 1;
}
};
}
}
java.lang.IllegalArgumentException: Нет Класс с именем "ndroid.examples.helloandroid $ Impl_TestInterface" найдено
Если вы, ребята, не возражаете, не могли бы вы сказать мне, как решить этот byg. Большое спасибо.
После того, как я установил ошибки в вашей «образец кода» (* пожалуйста * убедитесь, что ваш [MCVE] (http://stackoverflow.com/help/mcve) компилируется и работает!), Все работало нормально и Я не видел эту ошибку. Вам придется подробно остановиться на вашей проблеме. – dcsohl
Спасибо @dcsohl за подтверждение. Текущий, я реализую в версии 1.21, он будет бросать эту ошибку. Не только версия 1.21, но и версия 1.29 также выдает это исключение. : D Какую версию вы использовали для воспроизведения моей ошибки? –
Я тестирую на Android Studio: D –