[英]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.