public void testFunction() throws Exception {
ABC mock1= mock(ABC.class);
when(mock1.getValue()).thenReturn("string1");
whenNew(ABC.class).withNoArguments().thenReturn(mock1);
Student student= setHardCodeValuesToStudentObject();
Method method = Person.class.getDeclaredMethod("conversion",
Student.class);
method.setAccessible(true);
String actualConvertedValue = (String)method.invoke(new Person(),
student);
ClassLoader classLoader = this.getClass().getClassLoader();
InputStream inputStream =
classLoader.getResourceAsStream("expectedConvertedValue.json");
String expectedConvertedValue= "";
try {
expectedConvertedValue= IOUtils.toString(inputStream,
StandardCharsets.UTF-8);
}catch (Exception e) {
System.out.print(e.printStackTrace());
}
assertEquals(expectedConvertedValue,actualConvertedValue );
}
Это мой тестовый пример для метода, в котором одно значение преобразуется в другой формат. Поэтому я проверяю ожидаемое преобразование и фактическое преобразование.
setHardCodeValuesToStudentObject () устанавливает некоторые жестко закодированные значения для объекта ученика, такие как (name = "jack", age = "12" и т. Д.), И внутри этого метода есть один макет, и на этом макете происходит заглушка. Мне нужно смоделировать метод, потому что внутри setHardCodeValuesToStudentObject (), жестко закодированное значение getValue () генерируется автоматически. Он увеличивается, когда какая-то другая строка кода добавляется перед этой строкой. Поэтому я должен высмеивать это значение.
Когда я пытаюсь смоделировать метод внутри этого метода (setHardCodeValuesToStudentObject ()), тогда он выбрасывает это ----->
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at
com.print.view.ModelTest.setUpTransactionAnnotation(ModelTest.java:653)
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, you naughty developer!
3: you are stubbing the behaviour of another mock inside before
'thenReturn' instruction if completed