如何测试包含突变的还原程序

4uqofj5v  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(349)

我正在尝试使用mrunit,但是我所看到的例子中没有一个与我所尝试的完全匹配。
我的减速机输出一个键和突变,但我似乎无法将突变与预期进行比较。它显示的对象相同,但地址为0,并出现以下错误:

junit.framework.AssertionFailedError: expected: <org.apache.accumulo.core.data.Mutation@0> but was <org.apache.accumulo.core.data.Mutation@0>

我正在使用reducedriver.run()方法,并尝试在预期的突变对象上使用实际的assertequals。我有什么遗漏吗?
谢谢你的意见。

zlhcx6iw

zlhcx6iw1#

突变没有适当的equals()实现。最好是比较getupdates()和getrow()的结果。它们分别返回一个列表和一个字节[],这些很容易比较。

hgc7kmma

hgc7kmma2#

变异有一个合适的equals()方法,至少在1.4.x行中是这样。但是,该方法调用私有serialize()方法,该方法修改要检查的数据。
在过去,我通过将突变 Package 在一个新的突变中来解决这个问题,这个突变称为serialize under the hood:

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

holgip5t3#

您可以扩展变异并将新类传递给mrunit。在新类中重写equals。

相关问题