Я использую Postman для запуска своего Java-проекта, который работает, как и ожидалось, вставляя файл каталога в качестве входных данных, а затем получая выходной файл, но когда я использую Mockito с модульным тестом для тестирования реального проекта, Тика выдаетИсключение "Файл не найден".
Я в замешательстве, потому что я даже скопировал и вставил местоположение файла из Почтальона в свой тест без результатов, а также попытался передать тот же файл, зашифрованный внутри моего класса, для тестирования, но без результатов.Я также попытался изменить логику моего кода безрезультатно.На данный момент у меня нет полного пути к файлу, как в Postman, но он также не работает с полным путем.Я пытаюсь проверить следующие классы:
Это мой класс RestHandler, который также вызывается из Почтальона:
public class RestHandler {
private final ApplicationConfig applicationConfig;
private final BasicFileHandlerService basicFileHandlerService;
private final TikaService tikaService;
private final AmazonRekognitionAsync amazonRekognitionAsync;
public void processFilesInFolder(String pickUpFolder) {
//This will print out the file's path
System.out.println("ListOfFiles!!!!! : " + pickUpFolder);
//Here is where I get the exeption
List<File> allFile = basicFileHandlerService.getAllFile(pickUpFolder);
for (int i = 0; i < allFile.size() ; i++) {
String st = String.valueOf(allFile.get(i)).replace("%", " ");
File file = new File(st);
allFile.set(i, file);
}
allFile.forEach(file -> {
System.out.println("This is the file: " + file);
//If I call Tika's method I do get the same exeption as well
TikaResult extractText = tikaService.extractText(file);
String fileNoPath = file.getName().substring(String.valueOf(file).indexOf("\\")-2);
Это мой класс обслуживания Tika:
public class TikaService {
private final Parser parser;
public TikaResult extractText(File file) {
//This doesn't get called because the file I'm passing exists
if (!file.exists()) {
System.out.println("does not exist");
}
String s = "";
Metadata metadata = new Metadata();
ParseContext parseContext = new ParseContext();
try (ByteArrayOutputStream out = new ByteArrayOutputStream();) {
ContentHandler contentHandler = new BodyContentHandler(out);
parser.parse(new FileInputStream(file), contentHandler, metadata, parseContext);
s = new String(out.toByteArray());
boolean shouldThrowException = false;
} catch (IOException | SAXException | TikaException e) {
e.printStackTrace();
System.out.println(e);
}
Это мой тест:
@InjectMocks
RestHandler restHandler;
TikaService tikaService;
@Test
public void contextLoads() {
File fileForTikaService = new File("src/test/java/TestFiles/Johnson_-_TestTXT.txt");
restHandler.processFilesInFolder("src/test/java/TestFiles/Johnson_-_TestTXT.txt");
TikaResult extractText = tikaService.extractText(fileForTikaService);
File outputTestFile = new File("src/test/java/resources/resultFiles/Johnson_-_TestTXT.txt.csv");
Спасибо!