В powermockito как издеваться над объектом, у которого в качестве параметра есть другой издевательский объект?

#java #spring #unit-testing #mockito #powermockito

Вопрос:

У меня есть эти методы

     public File getFileDetails(File file){
                  FileDetailMaker fileDetailMaker = new FileDetailMaker(getFileNumber(File.getName()));
                  return fileDetailMaker;
        }
        
        public String getFileNumber(String fileName){
                 return  fileName.substring(0,fileName.indexOf(".")).substring(0,8);
        }
 

Я пишу тестовый пример для тестирования метода getFileDetails (). Если я протестирую его, создав макет объекта «Файл» и отправив макет «Файла» в качестве аргумента, я получу исключение с нулевым указателем, потому что из макетного файла подстрока не может быть получена.

Я также высмеял создание объекта FileDetailMaker с помощью

 FileDetailMaker fileDetailMaker = Mockito.mock(FileDetailMaker.class);
            
PowerMockito.whenNew(FileDetailMaker.class).withAnyArguments().thenReturn(fileDetailMaker);
 
 

Но я все еще получаю исключение нулевого указателя. Поэтому, пожалуйста, не могли бы вы помочь мне с предложениями по этому вопросу

Ответ №1:

добавьте это в свой тестовый случай

 PowerMockito.when(file.getName()).thenReturn("filenameisthis.extension");
 

где файл-это издевательский объект типа файла