我正在尝试测试这个简单的功能,它从控制器接收文件并从中提取电子邮件
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中作为参数在我的测试中传递?
您可以尝试这一行:
getClass().getClassLoader().getResourceAsStream("upload/emails.csv")
此外,在使用JUnit的单元测试中,如果需要,可以使用TemporaryFolder
规则来创建临时文件夹和文件。它非常有用。有关更多信息:https://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html