Здравствуйте, я столкнулся с проблемой при попытке написать тестовый пример JUnit и относительно новичок в Mockito.Mockito - thenCallRealMethod() on void function
У меня есть функция класса, который я издеваюсь, эта функция имеет тип возврата void. При вызове этой функции из моего издевающегося класса я понимаю (и опыт отладки), что он НЕ вызывает исходную функцию. Чтобы преодолеть это, я попытался использовать «когда» с «thenCallRealMethod()».
when(instance.voidFunction()).thenCallRealMethod();
«voidFunction» полон логики, которую я НЕ хочу стрелять. Я извлек их в заявления, чтобы избежать этого. Я прочитал, что должен использовать формат doReturn().when().voidFunction()
, однако это не вызывает реальный метод.
Было также мое понимание, что я не мог использовать Шпион здесь, из-за того, что я не хочу, чтобы voidFunction() вызывался перед операциями «когда». Любая помощь приветствуется. Я приношу свои извинения, если это очень простое решение, так как мое понимание mockito не очень велико, несмотря на то, что вы читаете немного. Благодаря!
Мой ответ на [этот вопрос] (http://stackoverflow.com/q/11462697) объясняет, почему я думаю, что делать/когда делать что-то лучше, чем когда/тогда. Если вы просто изучаете Мокито, то сейчас самое время его прочитать. –
Спасибо, что это действительно полезно, я изучал/основывал свои тестовые файлы уже существующих в нашей устаревшей кодовой базе и видел оба пути, но я согласен с вашим советом после того, как столкнулся с недостатками, когда/тогда уже дважды – CRDamico
Смущать будущих читателей может синтаксис. Подумайте внимательно, вы должны. –