0

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

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

上面的测试将通过,因为String xisnull并抛出 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

4

1 回答 1

0

只需要做.run();而不是.runTest();. 希望这可以帮助某人。

于 2016-05-24T17:27:44.430 回答