Java assert: So kannst du deinen Code testen!

    Avatarbild von Preet Sanghavi
    Preet Sanghavi

    veröffentlicht am: 22.06.2022
    zuletzt aktualisiert am: 19.04.2023

    Mit den Java assert Methoden können wir als Programmierer in unserem Source Code (oder Programme) bestimmte Annahmen testen!

    Die Java assert Anweisung wird in der Java-Programmierung zur Durchführung von sog. Assertions (Behauptungen / Annahmen) verwendet. Die  Behauptung ist ein Mittel, um einen bestimmten Teil des Codes zu testen. Die Behauptung muss wahr sein, um den Ausführungsprozess zu starten. Ist die Behauptung hingegen falsch, hält das Programm sofort an und es wird ein Fehler gemeldet. Ziel dieses Artikels ist es, einen Einblick in die Verwendung des assert-Schlüsselworts in Java mit den folgenden Lernergebnissen zu geben.

    • Wie funktioniert die Java assert-Anweisung?
    • Wie verwendet man das Java assert Schlüsselwort?

    Wie funktioniert die Java assert Anweisung?

    Das Schlüsselwort assert funktioniert genauso wie die Java if-Anweisung. Die if-Anweisung und die assert-Anweisung arbeiten mit der wahren Bedingung. Java assert funktioniert mit der folgenden Syntax:

    assert ausdruck-1 : ausdruck(ausgabe);

    Der ausdruck-1 sollte eine boolesche (Wahr/Falsch) Bedingung sein. Der ausdruck(ausgabe) enthält die Ausgabe, die auf der Konsole gedruckt wird, wenn ausdruck-1 zu einem Fehler führt.

    Bedeutung von Java assert

    Assertion hilft bei der Verfolgung von Daten, die möglicherweise nicht zum Testen verwendet wurden. Betrachten wir die folgende einfache if-Anweisung.

    if (punktZahl > 90)
    System.out.println("Die Note ist 1+");

    Wir haben eine Schule und bewerten in der Regel auf einer Skala von 0 bis 100 Punkten. Dabei sollen alle Arbeiten der Schüler, welche mehr als 90 Punkte erreicht haben, mit einer 1+ benotet werden. Betrachten wir nun die Bedingung im Detail.

    Wenn die Punktzahl größer als 90 ist, dann wird der Compiler „Die Note ist 1+“ ausgeben. Wenn ein Benutzer 250 eingibt, wird ebenfalls „Die Note ist A+„ausgegeben. Gemäß einer if-else Java Anweisung ist dies zwar wahr, aber in der Praxis ist es nicht korrekt. Daher wird das Schlüsselwort assert verwendet, um diese Art von Fehlern zu erkennen.

    Wie verwenden wir nun die assert-Anweisung in Java?

    Das assert-Schlüsselwort wird verwendet, um die Assertion-Operation zu initiieren, jedoch ist die Assertion standardmäßig deaktiviert.

    Bevor du assert verwendest, stelle sicher, dass es aktiviert ist.

    So aktivierst du Assertion in Eclipse

    Um sie in der Eclipse-IDE zu aktivieren, musst du zur Option Run Configurations für eine bestimmte Klasse navigieren.

    In den Konfigurationseinstellungen,

    • navigiere zur Registerkarte „Argumente„.
    • Markiere den Klassennamen, auf den die Assertion angewendet werden soll (in unserem Fall ist es Assert)
    • gebe „-ea“ in das Textfeld „VM-Argumente“ ein

    Klicke nun auf „Run„, um die Änderungen zu übernehmen.

    Verwendung von Assertions zur Verarbeitung von if-Anweisungen

    Der folgende Java-Code verwendet Assert anstelle einer if-else-Anweisung. Betrachten wir die folgende if-else-Anweisung.

    public class Main {
        public static void main(String[] args) {
            if (punktZahl > 90) {
                System.out.println("Die Note ist 1+");
            } else {
                System.out.println("Das wäre eine 2");
            }
        }
    }

    Dasselbe Szenario kann mit dem Schlüsselwort assert wie folgt gehandhabt werden.

    public class Main {
    
        public static void main(String[] args) {
    
            Scanner dieErreichtePunktzahl = new Scanner(System.in);
    
            // Eingabe des Lehrers
            System.out.println("Bitte gebe die erreichte Punktzahl ein: ");
    
            int meinePunktzahl = dieErreichtePunktzahl.nextInt();
    
            assert(meinePunktzahl > 90 && meinePunktzahl <= 100): "Bitte gib eine gültige Punktzahl an";
            if (meinePunktzahl > 90) {
                System.out.println("Das wäre eine 1+");
            }
            dieErreichtePunktzahl.close();
        }
    }

    Im obigen Java-Code,

    • muss der Benutzer einen Integer-Wert eingeben, der in der Variablen „meinePunktzahl“ gespeichert wird.
    • Das assert-Schlüsselwort wird verwendet, um die Punktzahl auf einen Wert zwischen 90 und 100 zu beschränken.

    Wenn die Assert-Bedingung falsch ist, wird ein Assertion-Fehler (auch bekannt als AssertionError) mit dem Hinweis „Bitte gib eine gültige Punktzahl an“ ausgegeben. Außerdem wird das Programm sofort abgebrochen.

    Ausgabe auf der Konsole (wenn die Assert-Bedingung falsch ist)

    Wie du siehst, schmeissen unsere Assertions (dt. Annahmen) einen sogenannten. Assertionerror!

    der Wert 390 erfüllt die Assert-Bedingung nicht, daher wird ein Assertion-Fehler mit dem Hinweis „Enter Valid Score“ ausgegeben.

    Ausgabe auf der Konsole (wenn die Assert-Bedingung wahr ist)

    Auf der codegree Seite kannst du kostenlos programmieren lernen!

    Die Ausgabe zeigt, dass die Assert-Bedingung für 96 wahr ist, daher wird das Programm normal ausgeführt.

    Zusammenfassung: Die Java assert-Anweisung

    Das assert-Schlüsselwort wird zur Durchführung von einer Assertion in Java verwendet. Die Java-Assertion ist standardmäßig deaktiviert. Dieser informative Beitrag bietet einen Einblick in Java Assert-Anweisungen und dient mehreren Lernzielen. Es werden die Grundlagen der Assert-Anweisung und ihre Bedeutung beschrieben. Außerdem haben wir ein Beispiel vorgestellt, um die Verwendung des assert-Schlüsselworts in Java zu demonstrieren. Wenn du mehr über Java lernen willst, schau dich gerne bei uns um!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig