Our Trusted. 24 x 7 hours free delivery!

Bei Facebook anmelden // Führen Sie den Test durch

Fügen Sie nun diesen unten stehenden Code der neu erstellten Datei user.test.js hinzu . Wir dürfen einen Test schreiben! Wenn Sie sich in unserem Schema erinnern, hat ein Benutzer E-Mail-, Telefon- und Salt-Eigenschaften. Im Fall von Telefon und E-Mail prüfen wir, ob das zurückgegebene Ergebnis tatsächlich das war, was wir gespeichert haben! Dies ist eine persönliche Entscheidung von mir und nicht obligatorisch. In diesem Artikel erfahren Sie, wie Sie Ihr Mongoose-Modell mit Jest testen. Wir erwarten, dass der Benutzer erstellt wird, aber diese Eigenschaft wird nicht hinzugefügt.

Einrichten der Testumgebung

Ihre Codestruktur sollte ungefähr so ​​aussehen: nun, lass uns schon darauf eingehen. Weitere Inhalte unter plainenglish.io. Oft erstellen wir Mungo-Modelle, starten unsere Server und machen uns nie die Mühe zu testen, ob die Modelle tatsächlich unabhängig vom Server so funktionieren, wie sie sollten.

Bibliografische Informationen

Daher testen wir, um sicherzustellen, dass sie nicht in den zurückgegebenen Daten enthalten ist, indem wir erwarten, dass sie nicht definiert ist. In diesem Fall haben wir nur einen Beschreibungsblock. Dieses Skript sagt jest, wie wir unseren Test ausführen und wo unsere Testdateien zu finden sind. Als nächstes erstellen wir 3 Methoden, nämlich setUp , dropDatabase und dropCollections . Wenn Sie mehr über jest lesen und seine Funktionen sehen möchten, überprüfen Sie diese . Der dritte Testblock : Benutzer ohne erforderliches Feld erstellen sollte fehlschlagen , wir erstellen einen neuen Benutzer wie im vorherigen Test, aber diesmal übergeben wir die E-Mail-Eigenschaft nicht, und da sie in unserem Schema erforderlich ist, sollte Mungo das nicht erstellen bestimmten Benutzer. Dazu erstellen wir einen neuen Ordner namens db an der Basis unseres Projekts und erstellen dann in diesem Ordner eine neue Datei namens setup.js. Wir in erster Linie unsere beiden Abhängigkeiten importieren, die Mungo und MongoMemoryServer . In der neu erstellten Datei user.js fügen wir den folgenden Code hinzu: öffnen Sie als Nächstes db.js und fügen Sie diesen Code hinzu. Bevor wir unseren Test schreiben, müssten wir unseren Mongo-Speicherserver in unser Projekt integrieren. Da mongoose auch eine _id-Eigenschaft an ein Schema anhängt, prüfen wir, ob diese ebenfalls existiert. Als nächstes fügen wir drei Methoden hinzu, nämlich beforeAll, afterEach, afterAll, diese Methoden sind im Scherz erlaubt. Der zweite Testblock : Benutzer erfolgreich einfügen, aber das im Schema nicht definierte Feld sollte undefiniert sein, wir erstellen einen neuen Benutzer, aber diesmal übergeben wir eine Eigenschaft, die im Schema nicht existiert.

Unit Testen Sie Ihr Mongoose-Modell mit Jest

Um unseren Test auszuführen, müssten wir unsere Datei package.json aktualisieren und einzelne Skriptbefehle zum Abschnitt Skripte hinzufügen. In dem obigen Code, setzen wir ein Benutzerschema in Mungo und erstellen Sie zwei Methoden: setPassword und validatePassword . Als nächstes erstellen wir Dummy-Daten und speichern sie in userData, die wir verwenden würden, um unseren Test später in dieser Datei durchzuführen. Die setUp Methode ist , wo wir auf die Datenbank mit dem MongoMemoryServer Paket verbinden. Im ersten Abschnitt importieren wir unsere db-Setup-Datei, das Benutzermodell und auch Mungo. Sieht ziemlich viel aus, oder? Das beforeAll wird ausgeführt, bevor unsere Testsuiten ausgeführt werden. Sehen Sie sich die Jest CLI-Dokumentation hier an, um weitere Optionen zu sehen, die verwendet werden können. Zuletzt exportieren wir diese 3 Methoden, da wir sie in unserer Testdatei benötigen würden. Dies ist auch mit dem Hauptspeicher des Geräts verbunden und wird nicht physisch auf der Festplatte gespeichert, daher ist es schneller und besser zum Testen. Ich kann es kaum erwarten zu sehen, was Sie bauen und testen! Erstellen Sie einen neuen Ordner namens Modelle; Erstellen Sie dann darunter eine Datei namens user.js. Da wir uns nur auf das Testen von Mungos-Modellen konzentrieren, würden wir unsere Modelle und einige Methoden darin erstellen. Der Moment, auf den wir gewartet haben, ist endlich da. Fangen Sie diesen Fehler in Ihrem Mungo-Modell. Die Methode dropDatabase wird verwendet, um die Datenbank vollständig zu löschen , zu schließen und die Verbindung zu beenden. Mongodb-memory-server : Dies ist eine In-Memory-Version einer Mongo-Datenbank, die wir verwenden würden. Der erste Testblock : Benutzer erfolgreich erstellen und speichern, wir erstellen einen neuen Benutzer und prüfen dann, ob tatsächlich ein Benutzer erstellt wurde.

Unsere neue Projektstruktur sollte nun lauten: sie können mehr über dieses Paket lesen hier . Wir verwenden diese Methoden, um ein gehashtes Benutzerpasswort zu generieren und auch das Passwort eines Benutzers zu validieren. Als nächstes erstellen wir unsere Codestruktur.

Bei dieser Methode rufen wir db.setUp auf, um unsere DB- Verbindung einzurichten. Den vollständigen Code finden Sie hier . Wir packen die save-Methode in einen try and catch und prüfen, ob der erhaltene Fehler tatsächlich ein Mungo-Validierungsfehler ist und prüfen weiter, ob dieser Validierungsfehler durch die fehlende E-Mail-Eigenschaft verursacht wurde. Als nächstes haben wir eine Testsuite erstellt und drei Tests darin geschrieben. Mungo : Wir würden verwenden Mungo mit unserer Mongo Datenbank zu verbinden. Sie werden seine Verwendung später im Tutorial sehen. Ich persönlich liebe es, meine Tests im selben Ordner mit der Datei zu speichern, die sie testen würden. Das erspart uns den Stress, eine echte Mongo-Datenbank einrichten zu müssen. Jest : Die Testbibliothek, von der wir Gebrauch machen würden. Was hier passiert, erkläre ich kurz: daher prüfen wir, ob diese Eigenschaften in den zurückgegebenen Benutzerdaten vorhanden sind.

Leave a Reply