Lerne, wie du deine ReScript-Übungen auf Exercism testest
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
Bevor du die Tests ausführst, installiere die Abhängigkeiten der Übung.
npm install
Kompiliere und starte die mitgelieferte Testsuite mit exercism test oder npm run test.
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.
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!"
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.