2013-03-27 37 views
5

Tôi mới đến Storm và tôi đang cố gắng tìm ra cách viết một thử nghiệm bu lông kiểm tra phương pháp execute(Tuple tuple) trong một phân lớp BaseRichBolt.Tạo backtype.storm.tuple.Tuple cho mục đích thử nghiệm?

Vấn đề có vẻ như Tuple là không thay đổi và tôi không thấy bất kỳ phương pháp hoặc người xây dựng nào để tạo Tuple mới. Làm cách nào tôi có thể tự tạo Tuple của riêng mình hoặc làm cách nào để thử nghiệm một bu-lông có đầu vào thử nghiệm?

Tôi thực sự đang sử dụng Scala chứ không phải Java, nhưng câu trả lời phải dễ dàng dịch.

Trả lời

5

Chế nhạo đối tượng Tuple là giải pháp tốt từ storm-starter project. Thật đơn giản:

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

Bất kỳ ai cũng có cách khác để làm điều đó? Tôi cần nhiều hơn một khi tôi đặt chúng vào một Danh sách và thực hiện một list.contains(). Tôi cần nhiều vật thể khác nhau. – markthegrea

Các vấn đề liên quan