在 TestNG(或 JUnit)中,这很简单。类似于:
@Test(expectedExceptions = NullPointerException)
public void test() throws NullPointerException {
String x = null;
String y = "y";
Assert.assertEquals(x.someMethod(), y);
}
上面的测试将通过,因为String x
isnull
并抛出 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
?