В моем проекте есть класс, содержащий метод извлечения файлов (в виде списка). Чтобы написать модульные тесты и иметь возможность поместить все в инструмент управления версиями, я хочу поместить небольшой пример каталога в мой проект. Однако, когда я это делаю, мой метод должен уметь различать, должен ли он считываться из реального (внешнего проекта) пути или среды тестирования.
Это мой метод:
fun getDirectoryContentObject(baseUserDir: String): UserLicenses {
val dirExists = Files.exists(Paths.get(licenseLocation + baseUserDir))
if(!dirExists) {
return UserLicenses(baseUserDir, listOf())
}
val userLicenses = UserLicenses(baseUserDir, listOf())
Files.walk(Paths.get(licenseLocation + baseUserDir)).forEach { outerIt ->
val dirOrFileName = outerIt.fileName.toString()
if (dirOrFileName != baseUserDir && !dirOrFileName.endsWith(licenseFileExtension)) {
val fileList: MutableList<String> = mutableListOf()
Files.walk(Paths.get(outerIt.toString())).forEach { innerIt ->
val subDirOrFileName = innerIt.fileName.toString()
if (subDirOrFileName.endsWith(licenseFileExtension)) {
fileList += subDirOrFileName
}
}
userLicenses.licenseVersions += LicenseVersions(dirOrFileName, fileList)
}
}
return userLicenses
}
Значение licenseLocation устанавливается @Value из application.yml и указывает на файлы за пределами проекта.
Как я могу сказать методу, чтобы получить файлы изнутри проекта, если онвыполняется модульным тестом?