【问题标题】:Creating a backtype.storm.tuple.Tuple for testing purposes?为测试目的创建一个 backtype.storm.tuple.Tuple?
【发布时间】:2013-03-27 02:21:23
【问题描述】:

我是Storm 的新手,我正在努力研究如何编写一个螺栓测试来测试子类execute(Tuple tuple) 中的execute(Tuple tuple) 方法。

问题是Tuple 似乎是不可变的,我没有看到任何方法或构建器来创建新的元组。如何创建自己的Tuple,或者如何使用测试输入测试螺栓?

我实际上使用的是 Scala,而不是 Java,但答案应该很容易翻译。

【问题讨论】:

    标签: java scala testing apache-storm


    【解决方案1】:

    模拟元组对象是storm-starter project 的一个很好的解决方案。很简单:

    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;
        }
    }
    

    【讨论】:

    • 有人有其他方法吗?我需要不止一个,因为我将它们放入列表并执行 list.contains()。我需要多个不同的对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2022-07-06
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    相关资源
    最近更新 更多