Как преобразовать InputStream в FilePart? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь протестировать эту простую функцию, которая получает файл от контроллера и извлекает из него электронные письма.

    fun extractEmailsFromFile(file: Mono<FilePart>, emailsPerFileLimit: Int): Flux<String> {
        return file
                .flatMap { readFileContent(it) }
                .flatMapMany { textContent -> extractAndValidateEmails(textContent, emailsPerFileLimit) }
    }

Чтобы выполнить модульный тест, я хочу поместить файл в папку ресурсов ипрочитай это. Как я могу преобразовать этот inputStream:

javaClass.getResourceAsStream("/upload/emails.csv")

в FilePart для передачи в качестве параметра в моем тесте?

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете попробовать эту строку:

getClass().getClassLoader().getResourceAsStream("upload/emails.csv")

Кроме того, в модульном тесте с использованием JUnit вы можете использовать правило TemporaryFolder для создания временных папок и файлов при необходимости. Это довольно полезно. Для получения дополнительной информации: https://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html

...