Lambda Kalkül für Javascript
  • Lambda Kalkül für praktisches JavaScript
  • Einfache Kombinatoren
  • Church Encodings - Booleans und Zahlen
  • Der lambdafizierter Taschenrechner
  • Immutable Stack
  • Immutable Stack Erweiterungen
  • Immutable ListMap
  • Observable
  • Either
  • Maybe
  • Box
  • Benchmark und unsere Erkenntnisse
  • Test-Framework
  • Code Convention
Powered by GitBook
On this page
  • Beschreibung
  • Ansicht aller Testergebnissen: AllTest.html
  • Aufbau

Was this helpful?

Export as PDF

Test-Framework

PreviousBenchmark und unsere ErkenntnisseNextCode Convention

Last updated 3 years ago

Was this helpful?

Beschreibung

Um die Korrektheit unserer Konstruktionen zu verifizieren haben, wir ein eigenes Test Framework ohne externe Abhängikeiten geschrieben. Von der Architektur (Aufbau/Struktur & Konzept) haben wir uns vom Test Framework von Prof. Dierk König inspieren lassen. Ausserdem wurde der im Test-Framework eingebaut und verwendet. Zudem sind mehrere nützliche Funktionen vom Stack verwendet worden, wie z.b die - & -Funktion.

Ansicht aller Testergebnissen:

Aufbau

Zuerst ein paar wichtige Definition/Erklärungen zum Test-Framework.

Die kleinste Einheit unseres Test-Frameworks ist ein einzelner Aufruf der equals-Methode auf dem Assert Objekt.

assert.equals(1, 1);

Die equals-Methode nimmt zwei Parameter entgegen. Das erste Argument ist der tatsächliche Wert (z.b der Wert vom Aufruf, einer zu testenden Funktion). Der zweite Parameter ist der erwartete Wert. Nun vergleicht die equals-Funktion die beiden übergebenen Parameter auf Gleicheit. Wenn der erwartete Wert mit dem IST-Zustand übereinstimmt, so ist der Test erfolgreich.

Pro Konstruktion/Funktion gibt es mehrere solche Test's mit der equals-Methode. Diese werden dann zu einem Testfall für die Funktion zusammengefasst.

Beispiel eines Testfalles:

lambdaCTest.add("identity", assert => {
    assert.equals(id(1), 1);
    assert.equals(id(n1), n1);
    assert.equals(id(true), true);
    assert.equals(id(id), id);
    assert.equals(id === id, true);
});

Mehrer zusammengehörende Testfälle werden einer Testsuite hinzugefügt. Dies dient dazu um mehrere Testfälle zu gruppieren. Zum Beispiel werden alle Testfälle vom Stack einer Testsuite hinzugefügt.

In der Testsuite befinden Testfälle von allen Funktionen des Gruppierten Thema's(Im Bild oben alle Testfälle von allen Stack-Konstruktionen). Dabei sieht man bei einem einzelnen Testfall einer Funktion, wie viele Test's erfolgreich waren.

Wenn in einem Testfall ein Test fehlschlägt, wird dies farblich angezeigt. Dabei wird die Nummer des Test's und was genau schiefgegangen ist angezeigt.

Die Testsuiten werden am Schluss auf einer Html Seite angezeigt, sodass man eine Übersicht von allen Test's hat. Auf dieser Übersicht werden alle Test's von allen Testfällen zusammengezählt und als Total angezeigt.

Bei diesem Testfall wird die getestet. Der Testfall besteht hier aus 5 Tests.

AllTest.html
Immutable-Stack
Filter
forEach
Identitätsfunktion
Testsuite - Stack
Einzelner Testfall einer Funktion
Ein fehlgeschlagener Test im Testfall, der Identitätsfunktion
Ausschnitt aus der Gesamtübersicht von allen Test's