我是Storm的新手,正在尝试研究如何编写一个螺栓测试来测试execute(Tuple tuple)
子类中的方法BaseRichBolt
。
问题是它似乎Tuple
是不可变的,我没有看到任何方法或构建器来创建新的元组。如何创建自己的Tuple
,或者如何使用测试输入测试螺栓?
我实际上使用的是 Scala,而不是 Java,但答案应该很容易翻译。
我是Storm的新手,正在尝试研究如何编写一个螺栓测试来测试execute(Tuple tuple)
子类中的方法BaseRichBolt
。
问题是它似乎Tuple
是不可变的,我没有看到任何方法或构建器来创建新的元组。如何创建自己的Tuple
,或者如何使用测试输入测试螺栓?
我实际上使用的是 Scala,而不是 Java,但答案应该很容易翻译。
模拟元组对象是storm-starter 项目的一个很好的解决方案。这很简单:
package storm.starter.tools;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import backtype.storm.Constants;
import backtype.storm.tuple.Tuple;
public final class MockTupleHelpers {
private MockTupleHelpers() {
}
public static Tuple mockTickTuple() {
return mockTuple(Constants.SYSTEM_COMPONENT_ID, Constants.SYSTEM_TICK_STREAM_ID);
}
public static Tuple mockTuple(String componentId, String streamId) {
Tuple tuple = mock(Tuple.class);
when(tuple.getSourceComponent()).thenReturn(componentId);
when(tuple.getSourceStreamId()).thenReturn(streamId);
return tuple;
}
}