Тестовые примеры Junit для потока интеграции и универсального обработчика - PullRequest
0 голосов
/ 04 июня 2019

Я хочу написать тестовый пример JUnit и интеграционный тестовый пример для потока интеграции и GenericHandler.

Я просмотрел несколько статей, но ничего полезного не нашел.

Фрагмент кода 1

IntegrationFlows.from(() -> path, e -> e.poller(Pollers.fixedDelay(60, TimeUnit.SECONDS)))
.handle(Sftp.outboundGateway(sftpSessionFactory(), LS, "payload")
        .regexFileNameFilter(".*csv"))
.split()
.handle(Sftp.outboundGateway(sftpSessionFactory(), GET, "payload.remoteDirectory + payload.filename").options(STREAM).temporaryFileSuffix("_reading"))
.handle(readCsvData(), e -> e.advice(afterReadingCsv()))
.filter(this, "checkSuccess")
.enrichHeaders(h -> h
        .headerExpression(FileHeaders.RENAME_TO, "headers[file_remoteDirectory] + 'archive/' + headers[file_remoteFile]")
        .headerExpression(FileHeaders.REMOTE_FILE, "headers[file_remoteFile]")
        .header(FileHeaders.REMOTE_DIRECTORY, "headers[file_remoteDirectory]"))
.handle(Sftp.outboundGateway(sftpSessionFactory(), MV, "headers[file_remoteDirectory]+headers[file_remoteFile]").renameExpression("headers['file_renameTo']"))
.get();

Фрагмент кода 2

    public GenericHandler readCsvData() {
        return new GenericHandler() {
            @Override
            public Object handle(Object o, Map map) {
        }
       }
       }

Будет полезно получить руководство по написанию тестовых случаев JUnit для приведенных выше фрагментов кода.

1 Ответ

1 голос
/ 20 июня 2019

Вы можете сделать что-то, как показано ниже

Фрагмент кода решения 1: макетировать класс и вызвать метод, чтобы проверить взаимодействие.

Фрагмент кода решения 2:

File file = ResourceUtils.getFile("classpath:someFile");
InputStream inputStream = new FileInputStream(file);
Map map = anyMap();
GenericHandler genericHandler = service.readCsvData();        
Object actual = genericHandler.handle(inputStream, map);
// Add some assertions here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...