2016-05-02 6 views
-1

Ich habe eine Methode gesetzt. Die set-Methode akzeptiert nur ein paar Strings. Wenn die Zeichenfolge nicht akzeptabel ist, gibt die set-Methode eine ColorException (Own Exception) aus. Wie mache ich einen JUnit-Test, um zu testen, ob ich eine Farbausnahme bekomme? Hier ist meine Testklasse zur Zeit (ich versuchte es mit Try-Catch ...):Java: Wie mache ich JUnit Tests für falsche Variablen

@Test 
// set&check foreground colors for drawings 
public void setgetFGCol() { 
    try { 
     draw.setFGColor("Red"); 
     assertEquals(draw.getFGColor(), "Red"); 
     draw.setFGColor("Not Acceptable String"); 
     // fail("handle fail?"); 
    } catch (ColorException e) { 
    System.out.println("Dies ist keine bekannte Farbe"); 
    } 
} 
+0

Seitennotiz über Code-Qualität: mit einfachen Strings, um Farben darzustellen ... schlechte Idee. Und dann ... eine Ausnahme machen, aber nur drucken - tu das nicht. Sie machen Ihre Tests grundsätzlich ungültig. – GhostCat

Antwort

1

Wenn es Ausnahmen, die Sie erwarten sind, können Sie es wie folgt tun:

@Test(expected = Exception.class)

Ursprüngliche Antwort von here.

3

Ich würde den Test für eine gültige und ungültige Argument und Test für die Ausnahme wie folgt trennen:

@Test(expected=ColorException.class) 
public void setInvalidFGCol() { 
    draw.setFGColor("Not Acceptable String"); 
} 
0

Sie sollten zwei Testfälle schreiben, so dass Sie leicht die Prüfung nicht bestanden sehen.

Und Sie können in Ihrem zweiten Testfall angeben, dass die Ausnahme erwartet wird.

@Test 
// set&check foreground colors for drawings 
public void setgetFGCol() { 
    draw.setFGColor("Red"); 
    assertEquals(draw.getFGColor(), "Red"); 
} 

@Test(expected=ColorException.class) 
// set&check foreground colors for drawings 
public void setInvalidFGCol() throws ColorException { 
    draw.setFGColor("Not Acceptable String"); 
} 
Verwandte Themen