2017-06-05 3 views
0

Wie kann ich testen, ob eine Assertion von der zu testenden Methode mit Junit ausgelöst wird? Heres die Methode, die ich teste:Testen, ob eine Assertion ausgelöst wird

public int f(int i){ 
    assert i > 0; 
    return i; 
} 

Ich benutze Junit 4.12.

Antwort

2

Sie können es testen, indem Parameter in @Test Anmerkung Bereitstellung:

@Test(expected = AssertionError.class) 
public void shouldThrowExceptionWhenIncorrectInput() { 
    f(-3); 
} 

Diese überprüft, ob die AssertException geworfen wird. Wenn Sie jedoch sicherstellen möchten, dass diese Funktion nicht mit falschen Parametern ausgeführt wird, müssen Sie beachten, dass Assertions durch Ausführen von Java mit den Parametern -da deaktiviert werden können.

Um sicherzustellen, dass die Ausnahme ausgelöst wird, würde ich vorschlagen, IllegalArgumentException innerhalb einer Validierungsmethode zu werfen und es mit der richtigen Nachricht zu versehen. Dann werden Sie sicher sein, dass dies immer eine Ausnahme auslöst, wenn falsche Parameter angegeben werden.

Verwandte Themen