繁体   English   中英

NiFi:如何开发NiFi控制器服务的JUnit测试?

[英]NiFi: How to develop a JUnit test of NiFi controller service?

我正在开发一个 NiFi 控制器服务,这个控制器服务具有另一个控制器服务的属性,它是 dbcpservice。 根据github.com/apache/nifi中的源代码,控制器服务测试也依赖于处理器测试,即定义一个具有自定义控制器服务属性的TestProcessor,然后通过该处理器操作控制器服务。 但就我而言,我的控制器服务的属性是另一个控制器服务(dbcpservice),我不知道如何编写一个junit测试来设置控制器服务。

您可以在测试中通过匿名内部类(或命名类)创建一个简单的处理器,以执行控制器服务的行为。 例如, DBCPServiceTest通过在测试类旁边定义TestProcessor DBCPServiceTest实现这一点。 测试处理器所需要的只是一个属性描述符,它接受与被测系统 (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);

除了安迪的回答 - 您还可以使用 Mockito 创建一个测试处理器:

AbstractProcessor processor = new Mockito().spy(AbstractProcessor.class);
TestRunner testRunner = TestRunners.newTestRunner(processor);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM