【问题标题】:MR-Unit vs JUnit for unit testing用于单元测试的 MR-Unit 与 JUnit
【发布时间】:2016-04-10 17:44:45
【问题描述】:

谁能解释一下使用 MR-Unit 对 MR 作业进行单元测试与使用 JUnit 和 Mockito 相比有什么好处?

具体来说,有哪些事情我可以做而我用 JUnit 做不到,或者更难做?

我的想法是将所有逻辑从映射器/减速器移动到辅助类,并验证是否在模拟上调用了适当的方法。

为什么要使用 MR-Unit?

【问题讨论】:

    标签: unit-testing hadoop junit mrunit


    【解决方案1】:

    我认为 mrunit 为您提供的最重要的东西是用于测试 mapreduce 作业的 DSL。单元测试应该是关于可读性和讲故事的,所以如果你有一个适合该领域的 API,那么编写测试并在以后理解它们会变得更容易。

    另一个可能同样重要的事情是它提供了比 JUnit 默认断言更好的断言错误和差异。

    当然,您也可以只坚持使用 JUnit,但您最终可能会以半支持的方式重新实现大部分 mrunit。

    但这不是非此即彼的,因为我看到 mrunit 的域有点不同。它迫使你以一种非常简单的方式思考你的工作:如果你把某些东西放进去,你就想把某些东西拿出来(可能还会增加一些计数器),而 JUnit 测试通常会测试某种逻辑。所以当然你可以单独放置和测试你的逻辑(如果你有复杂的逻辑,甚至应该这样做)并使用 mrunit 进行某种“黑盒”测试,只要你不关心逻辑在哪里以及如何实现为您的输入获得正确的输出。

    【讨论】:

      猜你喜欢
      • 2019-04-24
      • 1970-01-01
      • 2011-06-18
      • 2013-05-21
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      相关资源
      最近更新 更多