首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >apache storm单元测试实时拓扑中的螺栓

apache storm单元测试实时拓扑中的螺栓
EN

Stack Overflow用户
提问于 2018-02-10 03:28:18
回答 1查看 451关注 0票数 0

我有一个storm拓扑,它有一个连接到kafka队列的spout,并将元组转发到我的bolt进行处理。我只想对螺栓进行单元测试,而不是kafka -> spout -> bolt的整个代码段。但是,我还想在storm拓扑实例中测试螺栓,而不仅仅是它的纯功能。原因是螺栓实际上将处理后的数据发送到cassandra数据库。

因此,我实现这一点的一种方法是制作一个测试管口,将其连接到螺栓,然后通过测试管口将测试元组发送到螺栓。然而,对于测试来说,这似乎是太多的工作。有没有更好的方法来做这件事?比如在测试中劫持原始端口来发送一些测试元组?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 21:15:54

您可能会考虑使用https://storm.apache.org/releases/0.9.6/javadocs/backtype/storm/testing/FixedTupleSpout.htmlhttps://storm.apache.org/releases/0.9.6/javadocs/backtype/storm/testing/FeederSpout.html替换您的Kafka spout进行测试。

使用FixedTupleSpout进行测试的一个好处是它实现了https://github.com/apache/storm/blob/a4afacd9617d620f50cf026fc599821f7ac25c79/storm-client/src/jvm/org/apache/storm/testing/CompletableSpout.java,因此可以与completeTopology https://github.com/apache/storm/blob/64e29f365c9b5d3e15b33f33ab64e200345333e4/storm-server/src/main/java/org/apache/storm/Testing.java#L405一起使用。这可以让您编写测试,最初设置一些元组,运行拓扑直到所有元组都被确认/失败,然后允许您断言,例如,数据已写入Cassandra,所有元组都已被确认。

这里有一个在https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java#L83中使用completeTopology的例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48712824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档