gpt4 book ai didi

unit-testing - 测试 Storm bolt 和喷口

转载 作者:行者123 更新时间:2023-12-03 06:11:16 29 4
gpt4 key购买 nike

这是一个关于用 Java 编写的 Storm 拓扑中的 Bolts 和 Spouts 单元测试的一般问题。

单元测试(JUnit?)BoltsSpouts 的推荐实践和指南是什么?

例如,我可以为 Bolt 编写 JUnit 测试,但无需完全理解框架(例如 Bolt 的生命周期)和序列化含义,很容易犯了基于构造函数创建不可序列化成员变量的错误。在 JUnit 中,这个测试会通过,但在拓扑中,它不起作用。我完全想象有很多测试点需要考虑(例如这个带有序列化和生命周期的示例)。

因此,如果您使用基于 JUnit 的单元测试,是否建议您运行一个小型模拟拓扑 (LocalMode?) 并测试 Bolt 的隐含契约(或 Spout)在该拓扑下?或者,使用 JUnit 是否可以,但这意味着我们必须模拟 Bolt 的生命周期(创建它、调用 prepare()、模拟 Config,等)仔细?在这种情况下,被测类(Bolt/Spout)需要考虑哪些一般测试点?

其他开发人员在创建适当的单元测试方面做了什么?

我注意到有一个拓扑测试 API(参见:https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java)。是否最好使用一些 API,并为每个单独的 BoltSpout 建立“测试拓扑”(并验证 Bolt 必须提供的隐式契约) ,例如 - 它是声明的输出)?

谢谢

最佳答案

自版本 0.8.1 起,Storm 的单元测试工具已通过 Java 公开:

有关如何使用此 API 的示例,请查看此处:

关于unit-testing - 测试 Storm bolt 和喷口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549265/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com