Mokka in TypeScript
Wir stellen Mocha
vor und wie man damit Tests in TypeScript installiert und durchführt.
Mokka in TypeScript
Wenn wir an einer kommerziellen App oder einer Anwendung arbeiten, die Millionen von Benutzern verwenden werden, müssen wir sicherstellen, dass unsere Anwendung perfekt und fehlerfrei läuft. Zu diesem Zweck verwenden wir Mocha, ein JavaScript-Testframework.
Wir können Mocha verwenden, um asynchrone Tests und Abdeckungsberichte auszuführen, und wir können es verwenden, um jede der Behauptungsbibliotheken zu testen.
In diesem Tutorial stellen wir Ihnen vor, wie Sie Mocha in TypeScript installieren. Wie wir wissen, handelt es sich um ein JavaScript-Framework, und die Einrichtung von Mocha mit TypeScript ist keine leichte Aufgabe und erfordert Zeit und Mühe.
Es steht ein TypeScript-Framework zur Verfügung, das alle Aufgaben bezüglich der Änderungen und Updates von Mocha und ts-node
übernimmt und uns erlaubt, uns nur um das Schreiben von Tests zu kümmern. Die ts-mocha
-Bibliothek ist eine praktische Bibliothek, mit der wir Mocha einfach implementieren und verwenden können.
Um es in unserem Projekt zu installieren, können wir den folgenden Befehl ausführen.
npm i ts-mocha
Es ist auch wichtig, die Typen mocha
und expect
in unserem Projekt zu installieren, indem Sie den folgenden Befehl ausführen.
npm i @types/mocha @types/expect
Beim Hinzufügen und Ausführen von Tests erhalten die meisten von uns Fehler im Zusammenhang mit typescript-require
. Wir können dies leicht lösen, indem wir die Abhängigkeit von ts-node
mit dem folgenden Befehl installieren.
npm i ts-node
Dieser Befehl installiert die erforderliche Bibliothek, und wir können die Tests einfach mit mocha
erstellen und ausführen. Mocha
wird meistens mit einem anderen Framework verwendet, das als chai
bekannt ist.
Es ist eine BDD/TDD-Assertion-Bibliothek für Node.js. Diese Bibliothek wird mit beliebigen Testframeworks gekoppelt und hilft beim Schreiben der Tests.
Lassen Sie uns nun ein Beispiel durchgehen, in dem wir einen beispielhaften Mocha-Test erstellen und prüfen, wie wir ihn erstellen und in unseren Anwendungen verwenden können. Zuerst müssen wir unser neues Projekt installieren.
Zu diesem Zweck erstellen wir ein neues Verzeichnis mit dem Namen mocha
und initialisieren unser Projekt, indem wir den folgenden Befehl in unserem Terminal ausführen.
npm init
Es wird uns nach Optionen für unser Projekt fragen und eine package.json
-Datei erstellen. Nachdem wir diesen Schritt abgeschlossen haben, installieren wir nun Express mit dotenv
mit dem folgenden Befehl.
npm i --save express dotenv
Nach der Installation von Express werden wir mocha
, chai
, typescript
, nodemon
, supertest
, ts-node
und tsconfig-paths
in unserem Projekt installieren. Wie bereits erwähnt, werden mocha
und chai
zusammen verwendet, um Tests zu schreiben.
Wir werden typescript
installieren, weil wir Tests in typescript
erstellen werden.
Wir werden nodemon
verwenden, weil es uns erlaubt, das Projekt jedes Mal zu aktualisieren, wenn wir Änderungen in unseren Projektdateien vornehmen. Wir werden supertest
installieren, weil es uns erlaubt, Endpunkte in unserem Mocha-Test zu testen.
Dies hilft uns, APIs zu testen. Wir werden ts-node
installieren, was uns erlaubt, TypeScript in unserem Node-Projekt zu verwenden, und wir brauchen tsconfig-paths
, was uns erlaubt, absolute Importe im gesamten Node-Projekt in unseren Mocha-Tests zu verwenden.
Wir können den folgenden Befehl ausführen, um sie zu installieren, wie unten gezeigt.
npm i -D mocha chai typescript nodemon supertest ts-node tsconfig-paths
Jetzt werden wir die Typen dieser Abhängigkeiten installieren, da TypeScript die Typen kennen muss. Wir können sie einfach mit dem folgenden Befehl installieren.
npm i -D @types/chai @types/mocha @types/node @types/supertest
Wir werden die Befehle build
und dev
in unserem Abschnitt scripts
package.json
hinzufügen, wie unten gezeigt.
"scripts": {
"build": "tsc -p .",
"dev": "NODE_ENV=dev nodemon -r tsconfig-paths/register src/app.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
Wir müssen auch die TypeScript-Konfiguration in unserem Projekt initialisieren. Wir können das ganz einfach mit dem folgenden Befehl tun.
tsc --init
Dieser Befehl erstellt eine neue Datei mit dem Namen tsconfig.json
, die alle Konfigurationen von TypeScript enthält. In dieser Datei müssen wir einige Änderungen vornehmen.
Zuerst müssen wir unser Ausgabeverzeichnis ändern, damit es beim Kompilieren von TypeScript eine Menge JavaScript ausgeben kann, das im Browser verwendet werden kann, und wir werden es in den Ordner dist
legen, und einige andere Änderungen, wie z unten gezeigt.
"rootDir": "./src",
"moduleResolution": "node",
"baseUrl": "./src",
Jetzt richten wir den Befehl test
in der Datei package.json
ein oder fügen ihn hinzu, wie unten gezeigt.
"test": "NODE_ENV=test mocha --check-leaks -r tsconfig-paths/register -r ts-node/register \"test/**/*.spec.ts\""
Wir erstellen ein neues Verzeichnis für Tests und fügen die Datei index.specs.ts
unserem Testverzeichnis hinzu. Wir werden innerhalb unseres Testverzeichnisses ein weiteres Verzeichnis mit dem Namen des Servers
erstellen, das eine Datei server-runs.specs.ts
enthält, wie unten gezeigt.
Lassen Sie uns einige Beispieltests in beiden Dateien erstellen. Der Test in der index.specs.ts
ist unten dargestellt.
describe('test', function(){
it("testing", function(){
console.log('Looks fine')
});
})
Lassen Sie uns den Test in server-runs.specs.ts
erstellen, wie unten gezeigt.
describe('server checking', function(){
it("server is created without any error", function(){
console.log('Looks fine')
});
})
Lassen Sie uns die Tests ausführen und überprüfen, wie sie mit dem folgenden Befehl funktionieren.
npm test
Ausgang:
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn