Я получаю следующее сообщение об ошибке MRUnit:Получен неожиданный выход в MRUnit
ERROR mrunit.TestDriver: Received unexpected output (60, [email protected])
ERROR mrunit.TestDriver: Missing expected output (60, [email protected]) at position 0
Я создал MyCustomClass
, который реализует Writable
, и имеет 4 ИНТ атрибуты. Это значение вывода моего Mapper.
Ниже приведен код теста MRUnit в картографа:
@Test
public void testMapper() throws IOException {
MyCustomClass result = new MyCustomClass();
result.setAttr1(1);
result.setAttr2(0);
result.setAttr3(0);
result.setAttr4(0);
mapDriver.withInput(new LongWritable(1), new Text("60,5596,1,256"));
mapDriver.addOutput(new Text("60"), result);
mapDriver.runTest();
}
Мой Mapper должен вызвать его сеттер setAttr1(1)
, при размещении «1» в new Text("60,5596,1,256")
здесь выше.
Как я могу проверить этот результат с помощью пользовательского класса (с несколькими атрибутами)? Выполнение задания выполнено успешно, я просто не знаю, как сделать работу MRUnit.
$ hadoop fs -cat patterns/minmaxcount/outuserprefs/part*
23 [email protected]
60 [email protected]
Спасибо, действительно, ваш ответ помог мне найти «assertThat()» для тестов MRUnit. Нашли несколько примеров в http://java.dzone.com/articles/testing-mapreduce-mrunit – guzu92