我有Storm拓扑,可以计算每分钟的聚合。 我想通过Java单元测试来覆盖应用程序,但我无法做到 找到一些Java单元测试的任何工作示例。
我需要及时模拟变化,获取拓扑输出并进行测试。
答案 0 :(得分:0)
解决方案似乎是:
Testing.withSimulatedTimeLocalCluster(new TestJob() {
public void run(Cluster cluster) {
// your testing logic here.
Time.advanceTime(100);
}
});
利用Testing
类(所有Javadocs都莫名其妙地漏掉了)以及Time
类及其有用的手动时间推进方法。
请注意,这只会帮助您使用Storm的内部时钟,例如滑动窗口等。您自己的代码也需要了解模拟时间。在Java世界中执行此操作的标准方法包括Clock
类(仅限Java 8)或DateTimeUtils
类,如果您遇到Joda-Time。