CodeGym /Java-Blog /Random-DE /Java-Behauptungen
John Squirrels
Level 41
San Francisco

Java-Behauptungen

Veröffentlicht in der Gruppe Random-DE
Die Assert-Anweisung wird in Java verwendet, um bestimmte Annahmen über den Status eines Programms während der Ausführung zu testen. Dies hilft, Fehler leicht zu erkennen und das Programm zu debuggen. Eine Assertion-Anweisung in Java wird mit dem Java-Schlüsselwort „assertion“ geschrieben, gefolgt von einem booleschen Ausdruck. Wenn der Ausdruck „true“ ergibt, wird die Behauptung stillschweigend übergeben und das Programm erledigt seine Aufgabe. Wenn die Auswertung „falsch“ ergibt, schlägt die Behauptung fehl und es wird ein AssertionError ausgegeben. Schauen wir uns ein Beispiel für ein Programm mit Java-Assertions an.
//Assertion in Java example
public class AssertDemo1 {
   public static void main(String[] args) {
       int x = 5;
       assert x == 5 : "x should be 5";
       System.out.println(x);
   }
}
Hier ist der Ausdruck wahr, sodass das Programm einfach seine Arbeit fortsetzt. Die Ausgabe ist genauso wie erwartet:
5

AssertionError-Beispiel

In Java ist ein AssertionError eine Unterklasse der Error- Klasse und wird ausgelöst, wenn eine Assertion fehlschlägt. Behauptungen in Java werden normalerweise verwendet, um zu überprüfen, ob Vorbedingungen, Nachbedingungen oder Invarianten wahr sind. Wie weiter unten erwähnt, wird ein AssertionError ausgelöst, wenn eine Assertionsanweisung nicht als wahr ausgewertet werden kann. Schreiben wir nun unser Programm so um, dass der boolesche Ausdruck falsch ist.
//AssertionError example
public class AssertDemo1 {
   public static void main(String[] args) {
       int x = 5;
       assert x == 7 : "x should be 7";
       //here should be AssertionError
       System.out.println(x);
   }
}
Nun, wir führen es aus und die Ausgabe ist ...
5
In unserem Beispiel ist definitiv etwas schief gelaufen! Wir sollten hier einen AssertionError haben , weil unser x 5 ist und die Behauptung einen Wert von 7 erwartet. Was ist hier falsch? Es ist wichtig zu beachten, dass Java-Assertionen in der JVM einfach deaktiviert werden können und daher nicht als einziges Mittel zur Fehlerprüfung in einem Programm verwendet werden sollten. Sie sind nützlich zum Debuggen und Testen, sollten jedoch nicht für Produktionscode verwendet werden. Um Assertionen verwenden zu können, müssen Sie sie also mit der Option vm -ea (oder -enableassertions) aktivieren. Wenn Sie mit der Befehlszeile arbeiten, können Sie den nächsten Befehl für Ihr Programm AssertDemo1 verwenden:
java -ea AssertDemo1
Wenn Sie Behauptungen aktivieren und dasselbe Programm erneut ausführen, erhalten Sie Folgendes:
Ausnahme im Thread „main“ java.lang.AssertionError: x sollte 7 sein bei AssertDemo1.main(AssertDemo1.java:4)
Das ist der Punkt.

So aktivieren Sie Ausnahmen in IntelliJ IDEA

  1. Gehen Sie zum Menü „Ausführen“ → „Konfigurationen bearbeiten ...“.
  2. Geben Sie in der Zeile VM-Optionen den Parameter -ea ein
Java-Behauptungen – 1Jetzt sind die Zusicherungen aktiviert und Sie können sie verwenden.

Behauptungen für Unit-Tests in Java

In Java ist Unit-Test eine Technik, bei der einzelne Codemodule getestet werden, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Zusicherungen werden häufig beim Unit-Testen in Java verwendet, um zu überprüfen, ob der getestete Code wie erwartet funktioniert. Beim Unit-Test wird eine Codeeinheit, beispielsweise eine bestimmte Methode, isoliert getestet, um sicherzustellen, dass sie unter verschiedenen Bedingungen und Eingaben korrekt funktioniert. Nehmen wir ein Beispiel. Hier haben wir einen einfachen Rechner für Addition, Subtraktion, Multiplikation und Division von 2 ganzen Zahlen.
public class MyMath {

   public static int add (int a, int b) {
       return a + b;
   }

   public static int sub (int a, int b) {
       return a - b;
   }

   public static int mult (int a, int b) {
       return a*b;
   }

   public static double div (int a, int b) {
       return a/b;
   }
}
Natürlich gibt es viele Fragen zu dieser Implementierung (zum Beispiel, was passiert, wenn wir den größten int zu einer anderen Zahl addieren), aber wir lassen diese Implementierung vorerst so, wie sie ist. Schreiben wir nun eine Klasse, in der wir mithilfe von Unit-Tests die Methoden der myMath- Klasse testen . Stimmt, nur zwei davon. Tatsächlich können Sie Tests schreiben, die Argumente auf Gültigkeit prüfen, ob eine Methode Sonderfälle behandelt usw. Hier beschränken wir uns jedoch auf einige Tests zu Demonstrationszwecken.
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class MyMathTesting {
   @Test
   public void testAdd() {
       MyMath calculator = new MyMath();
       int sum = calculator.add(2, 3);
       assertEquals(5, sum);
   }

   @Test
   public void testSub() {
       MyMath calculator = new MyMath();
       int sub = calculator.sub(5, 2);
       assertEquals(3, sub);
   }

}
Die Methode „asserEquals“ ist eine Assertion, die prüft, ob zwei Werte gleich sind. Wenn die Werte nicht gleich sind, wird ein AssertionError ausgelöst, der anzeigt, dass der Test fehlgeschlagen ist. Die Verwendung von Zusicherungen in Komponententests kann Ihnen dabei helfen, Fehler zu erkennen und sicherzustellen, dass Ihr Code unter verschiedenen Bedingungen und Eingaben korrekt funktioniert. Versuchen Sie, solche Tests für Division und Multiplikation selbst hinzuzufügen. Es ist nicht schwer.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION