mr单元与junit单元测试

rqdpfwrv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(398)

有人能解释一下使用mr unit进行单元测试的好处吗?与使用junit和mockito相比,使用mr unit进行单元测试的好处是什么?
具体地说,我能做的事情中有哪些是我用junit做不到的,或者更难做的?
我的想法是将所有逻辑从Map器/还原器移动到助手类,并验证是否在mock上调用了适当的方法。
为什么使用mr单元?

tnkciper

tnkciper1#

我认为mrunit提供给您的最重要的东西是一个dsl,用于测试mapreduce作业。单元测试应该是关于可读性和讲述故事的,所以如果你有一个适合这个领域的api,那么以后编写测试和理解测试就更容易了。
另一件可能同样重要的事情是,它提供了比junit默认Assert更好的Assert错误和差异。
当然,您也可以只使用junit,但最终可能会以半备份的方式重新实现mrunit的大部分功能。
但不是非此即彼,因为我认为mrunit的领域有点不同。它迫使你以一种非常简单的方式来思考你的工作:如果你把某些东西放进去,你想把某些东西拿出来(也许一些计数器增加了),而junit测试通常测试某种逻辑。因此,当然你可以把你的逻辑分开测试(如果你有复杂的逻辑,甚至可能应该这样做),并使用mrunit进行某种“黑盒”测试,你不在乎逻辑在哪里,如何实现,只要你得到正确的输入输出。

相关问题