Java: макет multipartfile в модульном тесте - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь смоделировать MultipartFile и хочу создать макет с потоком, который я создаю в тесте

Я тоже пробовал с файлом без особой удачи. Вот что я пробовал до сих пор

FileInputStream stream = new 
FileInputStream("MOCK_file.xlsm");
MultipartFile f1 = new MockMultipartFile("file1",stream);
MultipartFile[] files = {f1};
return files;

Я получаю исключение fileFoundException. Где я должен поместить свой файл в свой проект Maven, чтобы модульные тесты могли найти файл?

- ИЛИ -

Как мне просто создать поток в коде без использованияфайл

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Поместите файл в

src/test/resources/MOCK_file.xlsm

Чтение из класса JUnit с:

InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("MOCK_file.xlsm");
0 голосов
/ 02 октября 2019

Как мне просто создать поток в коде без использования файла?

Вы можете использовать ByteArrayInputStream для ввода ложных данных. Это довольно просто для небольшого объема данных:

byte[] data = new byte[] {1, 2, 3, 4};
InputStream stream = new ByteArrayInputStream(data);

В противном случае вам нужно выяснить, из какого каталога выполняется код, который зависит от того, как он выполняется. Чтобы помочь с этим, вы можете напечатать системное свойство user.dir, которое сообщает текущий каталог:

System.out.println(System.getProperty("user.dir"));

В качестве альтернативы, вы можете использовать полный путь, а не относительный, чтобы найти файл.

...