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
。someData
しかし、不正なデータをフィードして の有効性をチェックする Try/Catch ブロックをカバーする必要があります。この場合、.withOutput
メソッドは必要ないようです。MRUnit で便利にテストする方法はありExceptions
ますか?