Unit-Tests

Letzte Stunde haben wir uns mit den Unit-Tests in BlueJ befasst. Wir haben mit dem bereitgestellten Quellcode der Klasse Mensch in Exkurs- Unit-Tests verschiedene Tests durchgeführt. Hier ist der Code:

class Mensch
{
    int alter;
    Mensch partner;

    int getAlter() {
        return 0;
    }

    void setAlter(int a) {
    }

    boolean istVolljaehrig() {
        return true;
    }

    void heiraten(Mensch p) {
    }

    Mensch getPartner() {
        return null;
    }
}

Wie man Unit-Tests grundlegend macht, wurde im vorherigen Protokoll von Tim S. erklärt. Ich gehe nun genauer auf die Tests ein und wie sie funktionieren.

Wir wollen nun einen Test machen ob man mit 1 Jahr volljährig ist. Dazu erzeugen wir eine Testklasse der Klasse Mensch und davon eine Testmethode. Im Quellcode steht zwar dass true immer ausgegeben wird aber wir wollen dies vermeiden.

Nach dem erzeugen einer Testmethode startet der Aufzeichnungsmodus. Wir erstellen nun ein neues Objekt der Klasse Mensch und da wir testen wollen ob man mit 1 Jahr volljährig ist, rufen wir die Methode setAlter auf ,setzen das Alter auf 1 und führen die Methode istVolljaehrig durch. Es wird logischerweise true ausgegeben. Da aber false ausgegeben werden soll kann man dies in einer zusätzlichen Spalte eingeben. So sieht das dann aus:

Hier sieht man das Fenster der Methode istVolljaehrig.

Um den Test zu beenden klickt man auf Schließen und dann auf Beenden um die Aufzeichnung zu beenden. Im Quellcode wird dann die ganze Vorgehensweise während der Aufzeichnung dargestellt. Dies sieht so aus:

Um erwartete und reale Rückgabewerte von Methoden zu vergleichen, nutzt man die Methode assertEquals, die im JUnit-Framework definiert ist. ~ Inf-Schule

Somit kann man verschiedene Tests in BlueJ ausführen. Wenn man mehrere Testmethoden hat, wär es zeitaufwendig alle einzeln aufzurufen. Deshalb gibt es den „Tests starten“-Button mit dem alle Tests sofort aufgerufen und ausgeführt werden.

Hier sind alle Tests aufgelistet und hier werden sie auch ausgeführt.

Hausaufgabe: Tests zu dem Keep or Throw Spiel machen.

Schreibe einen Kommentar