NiFi: Как разработать JUnit-тест службы контроллера NiFi? - PullRequest
0 голосов
/ 10 февраля 2020

Я разрабатываю службу контроллера NiFi, и у этой службы контроллера есть свойство другой службы контроллера, которая называется dbcpservice. Согласно исходному коду в github.com/apache/nifi, проверка службы контроллера также зависит от проверки процессора, что означает определение TestProcessor, обладающего свойством самоопределяемой службы контроллера, а затем управление службой контроллера через этот процессор. Но в моем случае свойство моей службы контроллера - это другая служба контроллера (dbcpservice), я не знаю, как написать тест junit для установки службы контроллера.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете создать простой процессор с помощью анонимных внутренних классов (или именованных классов) в своем тесте, чтобы проверить поведение службы контроллера. Например, DBCPServiceTest делает это, определяя TestProcessor рядом с классом теста. Все, что нужно тестирующему процессору, - это дескриптор свойства, который принимает службу контроллера того же типа, что и тестируемая система (SUT) - в данном случае, ваша пользовательская служба контроллера.

Если вы спрашиваете, как настроить собственную службу (с этого момента CustomService), вы передаете параметры в экземпляр TestRunner, например:

final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class);
final CustomService service = new CustomService();
service.setNestedService(new NestedService());
final Map<String, String> properties = new HashMap<String, String>();
runner.addControllerService("custom-service-id", service, properties);
...