【发布时间】: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 x 是 null 并且抛出了 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