我是hadoop的新手,这是我的第一个Map程序,我正在通过mr单元进行单元测试。
我通过config对象传递我设置的参数(year)
Configuration config =new Configuration()
config.set("Year", "2012");
Job job=new Job(config ,"Yearly");
我的Map器:
public void map(ImmutableBytesWritable row, Result values, Context context)throws IOException, InterruptedException
{
Configuration conf = context.getConfiguration();
String Year= conf.get("Year");
}
在mr单元测试中,我模拟了context类和key,value
@Test
public void testMapper() throws IOException, InterruptedException
{
context = mock(Mapper.Context.class);
Configuration conf=mock(Configuration.class);
when(conf.get("Year")).thenReturn("2012");
when(context.getConfiguration()).thenReturn(conf);
mapper.map(row, result, context);
}
但是,无法获取Map中的值(年),接收空值。我这样做是正确的还是有更好的方法来测试Map。
1条答案
按热度按时间icomxhvb1#
您应该在测试代码中从mapdriver获取配置,如下所示: