Я новичок в Junit и Jmockit. Я написал пример и хочу проверить, что с помощью насмешек, но я застрял с ошибкой. Пожалуйста, любезно помогите.Jmockit насмешливый выпуск
public class First {
public static int square(int number) {
int result = number * number;
return result;
}
}
public class Second {
public static void main(String[] args) {
int number = 5;
number = new Second().xi(number, number);
System.out.println(number);
}
public int xi(int number, int number1) {
number = First.square(number) + First.square(number1);
return number;
}
}
public class SecondTest {
Second second = new Second();
@Test
public void testXi() {
new Expectations() {
{
First.square(5);
result = 25;
}
};
int mk = second.xi(5, 5);
assertEquals(50, mk);
}
}
Когда я попытался запустить этот SecondTest.java тогда я получил следующее сообщение об ошибке.
java.lang.IllegalStateException: Отсутствует вызов для издевающегося типа на этот пункт; убедитесь, что такие вызовы появляются только после объявления подходящего макетного поля или параметра на SecondTest $ 1. (SecondTest.java:17) на SecondTest.testXi (SecondTest.java:12) на sun.reflect.NativeMethodAccessorImpl. invoke0 (родной метод) в java.lang.reflect.Method.invoke (Method.java:606) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.lang.reflect.Method.invoke (метод. Java: 606) на org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:86) на org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java : 38) по адресу: org.eclipse.jdt.in ternal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459) на org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:675) на org.eclipse.jdt. internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:382) на org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:192)
Как я new Я не смог найти ошибку в коде. Заранее спасибо
Где вы искали, точно? Документация JMockit (страница «Начало работы», «Учебник», «Документы API») ясно говорит о том, что типы нужно обманывать, используя одну из насмешливых аннотаций, прежде чем вы сможете записать ожидания. Кроме того, это сообщение об ошибке: «... убедитесь, что такие вызовы появляются только после объявления подходящего макетного поля или параметра». –