Hadoop单元测试方法?使用和增强MRUnit
作者:网络转载 发布时间:[ 2013/12/11 10:55:14 ] 推荐标签:
ReduceDriver
针对Reduce的单独测试,还是这个例子。Reduce为根据Map或Combiner输出的n次时间间隔的总和来计算平均时间。
|
private Reduce reducer;
@Before
public void setUp() {
reducer = new Reduce();
reduceDriver = new ReduceDriver<Text, TimeInfo, Text,LongWritable>(reducer);
}
@Test
public void testReduce () {
List<TimeInfo> values = new ArrayList<TimeInfo>();
values.add(new TimeInfo(1, 3));//一次3小时
values.add(new TimeInfo(2, 5));//两次总共5小时
values.add(new TimeInfo(3, 7));//三次总共7小时
//values作为444这个卖家的reduce输入,
//期望计算出平均为2小时
reduceDriver.withReducer(reducer)
.withInput(new Text("444"), values)
.withOutput(new Text("444"),new LongWritable(2))
.runTest();
}
|
MapReduceDriver
以下为Map和Reduce联合测试的例子,
|
private MapReduceDriver<LongWritable, Text, Text, TimeInfo, Text, LongWritable> mrDriver;
private Map mapper;
private Reduce reducer;
@Before
public void setUp() {
mapper = new Map();
reducer = new Reduce();
mrDriver = new MapReduceDriver<LongWritable, Text, Text, TimeInfo, Text, LongWritable>(mapper, reducer);
}
@Test
public void testMapReduce_3record_1user() {
Text mapInputValue1 = new Text("……");
Text mapInputValue2 = new Text("……");
Text mapInputValue3 = new Text("……");
//我们期望从以上三条Map输入计算后,
//从reduce输出得到444这个卖家的平均时间为2小时.
mrDriver.withInput(null, mapInputValue1)
.withInput(null, mapInputValue2)
.withInput(null, mapInputValue3)
.withOutput(new Text("444"),new LongWritable(2))
.runTest();
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
iOS单元测试mocha、chai、sinon和istanbul实现百分之百的单元测试覆盖率关于单元测试的总结及思考编写更好的Java单元测试的7个技巧Android单元测试框架Robolectric3.0介绍(一)使用Kiwi单元测试总结单元测试如此重要,为什么你不知道Python单元测试??使用装饰器实现测试跳过和预期故障对Controller的单元测试写好单元测试的10个技巧单元测试的重要性Angular单元测试系列??Component、Directive、Pipe 以及ServiceAndroid单元测试的整理提升单元测试体验的利器--Mockito使用总结iOS UnitTest单元测试Vue的单元测试探索(二)

sales@spasvo.com