Testen im ReScript-Track

Lerne, wie du deine ReScript-Übungen auf Exercism testest


Eine Übung herunterladen

Lade die Übung, an der du arbeiten möchtest, mit der Exercism CLI herunter.

exercism download --track=rescript --exercise=hello-world

Wechsle dann in das Verzeichnis der Übung.

cd /path/to/exercism/rescript/hello-world

Abhängigkeiten installieren

Bevor du die Tests ausführst, installiere die Abhängigkeiten der Übung.

npm install

Tests ausführen

Kompiliere und starte die mitgelieferte Testsuite mit exercism test oder npm run test.

Testergebnisse verstehen

Der Test-Runner zeigt jeden Testlauf mit dem Status bestanden oder nicht bestanden.

1/3: no name given
  PASS - no name given
2/3: a name given
  FAIL - a name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Alice, one for me.
    ...
3/3: another name given
  FAIL - another name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Bob, one for me.
    ...

# Ran 3 tests (3 assertions)
# 1 passed
# 2 failed

left ist das, was dein Code zurückgegeben hat. right ist das, was der Test erwartet hat.

Aufbau der Übung verstehen

two-fer/
├── src/
│   ├── TwoFer.res   // your solution goes here
│   └── TwoFer.resi  // the optional interface file containing signatures
├── tests/
│   └── TwoFer_test.res // your test suite
├── package.json // used to install project dependencies
└── ...

Die Datei TwoFer.resi ist hier eine optionale Interface-Datei. Wenn sie vorhanden ist, legt sie die Funktionssignaturen fest, die deine Lösung erfüllen muss, und kann als Hinweis darauf dienen, was du implementieren musst.

Wenn das Interface zum Beispiel Folgendes deklariert:

let hello: unit => string

Dann sollte deine Implementierung Folgendes definieren:

let hello = () => "Hello, World!"

Compilerfehler

Wenn dein Code nicht kompiliert, liefert der Compiler von ReScript ausführliche Fehlermeldungen mit der genauen Stelle und den erwarteten Typen.

  We've found a bug for you!

  1 │ let x: string = 42

  This has type: int
  But it's expected to have type: string

  You can convert int to string with Int.toString.

Lies die Fehlermeldung genau, denn sie zeigt meist direkt auf das Problem.