Übung: Installieren von Paketen
Das Tailwind Traders-Team plant, mehrere Node.js-Apps zu entwickeln. Sie haben Jest, ein beliebtes Zero-Config-Testframework, in der npm-Registrierung gefunden. Sie möchten, dass Sie Jest installieren, einige Tests schreiben und ausführen, um die Wirksamkeit zu bewerten.
Hinzufügen eines Testpakets mit npm CLI
Sie haben Code, der eine Adresse aus einer Zeichenfolge extrahiert. Ihr Auftrag ist einfach: Installieren Sie das Testframework, schreiben Sie einige Tests und führen Sie sie aus.
Wechseln Sie in einem neuen Terminalfenster (STRG + UMSCHALT + `) zum Ordner, der die Dateien für diese Übung enthält:
cd node-dependencies/5-exercise-dependency
Zeigen Sie den Inhalt des Ordners an:
ls -R
In diesem Ordner sollten zwei JavaScript-Dateien enthalten sein:
-| address-parser.js -| package.json
Öffnen Sie die Datei address-parser.js. Diese sollte wie die folgende Datei aussehen:
exports.addressParser = function parseOrder(order) { const match = order.match(/order:\s(?<order>\w+\s\w+).*address:\s(?<address>\w+\s\w+\s\w+).*payment info:\s(?<payment>\w+)/) return match.groups; }
Diese Funktion erfasst eine Zeichenfolge und liest aus dieser Informationen darüber, was ein Kunde bestellt, wohin diese Bestellung geliefert werden soll und wie er dafür bezahlt. Fügen Sie Jest hinzu, und schreiben einige Tests für die Funktion.
Schließen Sie die
address-parser.js
-Datei.Installieren Sie das Jest-Paket, indem Sie diesen Befehl ausführen:
npm install jest --save-dev
Öffnen Sie nach der Installation des Jest-Pakets die
package.json
-Datei und suchen Sie dendevDependencies
-Abschnitt. Es sollte ein Eintrag angezeigt werden, der wie in diesem Beispiel aussieht, wo der Wert für diejest
-Eigenschaft eine semantische Versionsnummer ist:"devDependencies": { "jest": "<number.number.number>" }
Wechseln Sie in der Datei „package.json“ zum Abschnitt
scripts
. Ersetzen Sie den vorhandenen Eintrag der Aktiontest
durch folgenden Code:"test": "jest"
Speichern Sie Ihre Änderungen, und schließen Sie die Datei „package.json“.
Erstellen Sie im Terminal einen neuen Unterordner namens __tests__.
mkdir __tests__
Hinweis
Stellen Sie sicher, dass Sie doppelte Unterstriche verwenden, wenn Sie den Ordner __tests__ erstellen. Der Testordner ist eine Benennungskonvention, die von Jest, dem Testframework, verwendet wird. Jest erkennt automatisch alle Dateien in einem Testordner (oder Dateien mit .test. oder .spec. in ihren Namen) als Testdateien und schließt sie ein, wenn Tests ausgeführt werden. Diese Konvention hilft, Testdateien in Ihrem Projekt zu organisieren und leicht zu identifizieren.
Erstellen Sie im Ordner „__tests__“ eine Datei namens address-parser.spec.js und fügen Sie ihr dann folgenden Inhalt hinzu:
const { addressParser } = require('../address-parser'); describe('Address Parser', () => { test('should parse correctly', () => { expect(addressParser("I want to to order: 3 books to address: 112 street city here is my payment info: cardnumber") ).toEqual({ order: "3 books", address: "112 street city", payment: "cardnumber", }); }); });
Das Testskript:
- Überprüft die Fähigkeit zur Analyse der Funktion „address-parser.js“.
- Stellt sicher, dass die Funktion die erforderlichen Informationen richtig analysieren kann.
Speichern Sie Ihre Änderungen, und schließen Sie die Datei.
Ihre Projektstruktur sollte jetzt wie in diesem Beispiel aussehen:
-| package.json -| address-parser.js -| __tests__/ ---| address-parser.js
Führen Sie die Tests aus, indem Sie den folgenden Befehl im Terminal eingeben:
npm run test
Die folgende Ausgabe sollte angezeigt werden:
PASS __tests__/address-parser.js Address parser ✓ should parse correctly (2 ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.4 s Ran all test suites.
Gratulation, das Programm funktioniert! Ihr Test wurde bestanden, und Sie haben den Test hinzugefügt, indem Sie eine Abhängigkeit installiert haben.
Herzlichen Glückwunsch. Sie haben Jest erfolgreich als Abhängigkeit installiert, Tests für Anwendungscode geschrieben und die Tests ausgeführt. Jest scheint sein Versprechen zu halten, und Tailwind Traders ist mit dieser Auswertung wahrscheinlich zufrieden.