2016-05-23 12 views
0

In TestNG (oder JUnit) ist es einfach. Geht so etwas wie:Testen für eine bestimmte Ausnahme in MRUnit

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

Above Test bestehen wird, da String xnull ist und eine Nullpointer ausgelöst.

In MRUnit funktioniert die Assertion jedoch anders. Im Anschluss wird ein Testverfahren für eine Mapper-Klasse:

@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(); 

es einen Eingang mit someData nimmt und erwartet die Ausgabe mit someKey. Aber ich muss einen Try/Catch-Block abdecken, in dem die Gültigkeit von someData überprüft wird, indem schlechte Daten eingegeben werden. In diesem Fall scheint es .withOutput Methode ist nicht einmal notwendig. Gibt es eine Möglichkeit in MRUnit, bequem nach Exceptions zu testen?

Antwort

0

musste einfach .run(); statt .runTest(); tun. Hoffe, das hilft jemandem.

Verwandte Themen