0

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

4

1 に答える 1

0

.run();の代わりにやらなければならなかっただけです.runTest();。これが誰かに役立つことを願っています。

于 2016-05-24T17:27:44.430 に答える