【问题标题】:Testing for a specific exception in MRUnit测试 MRUnit 中的特定异常
【发布时间】:2016-05-23 17:10:49
【问题描述】:

在 TestNG(或 JUnit)中,这很简单。类似于:

@Test(expectedExceptions = NullPointerException)
public void test() throws NullPointerException {
    String x = null;
    String y = "y";
    Assert.assertEquals(x.someMethod(), y);
}

以上测试将通过,因为 String xnull 并且抛出了 NullPointerException。

但在 MRUnit 中,断言的工作方式不同。下面是一个映射器类的测试方法:

@Test(expectedExceptions = Data.InvalidDataException.class)
public void testFirstCatch() throws Exception {
    Data data = someData;
    MapDriver.newMapDriver(mapper)
        .withInput(new LongWritable(0), someData)
        .withOutput(someKey, NullWritable.get())
        .runTest();

它接受someData 的输入,并期望someKey 的输出。但是我需要覆盖一个 Try/Catch 块,它通过提供错误数据来检查someData 的有效性。在这种情况下,似乎甚至不需要.withOutput 方法。 MRUnit 中有没有一种方法可以方便地测试Exceptions

【问题讨论】:

    标签: java hadoop mapreduce mapper mrunit


    【解决方案1】:

    只需使用.run(); 而不是.runTest();。希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 2023-04-10
      • 1970-01-01
      • 2021-08-25
      • 2012-10-01
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多