Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为测试目的创建backtype.storm.tuple.tuple?_Java_Scala_Testing_Apache Storm - Fatal编程技术网

Java 为测试目的创建backtype.storm.tuple.tuple?

Java 为测试目的创建backtype.storm.tuple.tuple?,java,scala,testing,apache-storm,Java,Scala,Testing,Apache Storm,我是新手,正在尝试编写一个bolt测试,该测试在子类BaseRichBolt中测试execute(Tuple-Tuple)方法 问题是,Tuple似乎是不可变的,我没有看到任何方法或构建器来创建新的Tuple。如何创建自己的元组,或者如何使用测试输入测试螺栓 我实际上使用的是Scala,不是Java,但答案应该很容易翻译。模拟Tuple对象是一个很好的解决方案。这很简单: package storm.starter.tools; import static org.mockito.Mockit

我是新手,正在尝试编写一个bolt测试,该测试在子类
BaseRichBolt
中测试
execute(Tuple-Tuple)
方法

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


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

模拟Tuple对象是一个很好的解决方案。这很简单:

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

有人有别的办法吗?我需要不止一个,因为我正在将它们放入列表并执行列表。contains()。我需要多个不同的对象。