✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So verstecken Sie die Ausgabe von console.log von JavaScript in Jest-Tests

18

Ich habe heute in einer Codebasis gearbeitet, die viele absichtliche console.logAusgaben in allen Umgebungen außer der Produktion hatte, sodass sie in der Ausgabe von Jest-Tests auftauchten. Es wäre mühsam gewesen, sie einzeln zu entfernen, und deshalb habe ich mir dieses einfache Setup ausgedacht, um alle console.logAusgaben auf einmal zu unterdrücken, während Jest läuft.

Konfigurieren Es gibt

Dieser Trick beruht auf Jests angeborener Fähigkeit, alles zu verspotten. Was wir im Grunde tun werden, ist, die logMethode des consoleObjekts zu verspotten und die anderen Methoden intakt zu lassen.

Wir müssen Jest zuerst anweisen, eine Setup-Datei auszuführen, bevor die Tests ausgeführt werden. Dazu bearbeiten wir die jest.config.jsDatei, die sich normalerweise im Stammverzeichnis Ihres Projekts befindet, mit anderen Konfigurationseigenschaften und fügen die folgende Zeile hinzu:

setupFilesAfterEnv: ['/src/jest.setup.js']

Wir können in Jests Dokumentation nachsehen, was das setupFilesAfterEnvtut:

Eine Liste von Pfaden zu Modulen, die Code ausführen, um das Testframework zu konfigurieren oder einzurichten, bevor jede Testdatei in der Suite ausgeführt wird.

Wenn wir jetzt unsere Tests ausführen, führen sie zuerst das jest.setup.jsaus, was wir jetzt erstellen werden.

Verspotten von console.log

Erstellen Sie eine Datei an src/setup.jsoder wo immer Sie im vorherigen Schritt Ihren Pfad angegeben haben. Das fügst du dann hinzu:

global.console = { log: jest.fn(), debug: console.debug, trace: console.trace, }

Dies überschreibt die logMethode und lässt die anderen zu. Da ich in den Tests trotzdem die Möglichkeit haben wollte, etwas auszugeben, habe ich debugund gemappt trace. Sie können andere zuordnen, die Sie möglicherweise benötigen console.table, z. B. zum Rendern von Elementen in einer Tabelle, die zum Protokollieren von Objekten oder Arrays nützlich sind. Um ehrlich zu sein, hatte ich mir, bis ich dies schrieb, noch nie die Konsolenobjektseite in MDN angesehen, und es gibt viele interessante Methoden wie die console.dir, die eine interaktive Liste der Eigenschaften des angegebenen JavaScript – Objekts anzeigt.

Schlussworte

Jetzt console.logwird Ihre Ausgabe unterdrückt, während Ihre Jest-Tests ausgeführt werden. Wenn Sie in einem Team arbeiten, stellen Sie sicher, dass Sie den Rest des Teams über diese Änderung informieren, indem Sie sie dokumentieren, da jemand gestresst sein könnte, wenn er versucht, console.logetwas zu tun, und es nicht sieht, wo es sein sollte.

Aufnahmequelle: startfunction.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen