2013-08-30 4 views
0

Я пытаюсь использовать MRUnit, но ни один из примеров, которые я видел, не соответствует тому, что я пытаюсь сделать.Как проверить редуктор, содержащий мутацию

Мой редуктор выводит ключ и мутацию, но я не могу сравнивать мутацию с тем, что ожидается. Это показывает объекты, как быть то же самое, но с адресом 0 и следующее сообщение об ошибке:

junit.framework.AssertionFailedError: expected: <[email protected]> but was <[email protected]> 

Я использую метод reduceDriver.run(), и попытка assertEquals на моем ожидаемого объекта мутации с фактическим , Есть что-то, чего я не хватает?

Спасибо за любой ввод.

ответ

0

Мутация не имеет соответствующей реализации equals(). вам лучше всего, вероятно, сравнить результаты getUpdates() и getRow(). Они возвращают список и байт [] соответственно, и они легко сопоставимы.

0

Мутация имеет соответствующий метод equals(), по крайней мере, в строке 1.4.x. Однако этот метод вызывает частный метод serialize(), который изменяет данные, подлежащие проверке.

Я получил вокруг этого в прошлом, обернув Мутацию в новой Мутации, которая вызывает сериализацию под капотом:

assertEquals(expectedMutation, new Mutation(actualMutation)); 
0

Вы можете расширить мутацию и передать новый класс mrunit. Просто переопределите equals в новом классе.

Смежные вопросы