✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man döljer JavaScripts console.log-utdata i Jest-tester

10

Jag arbetade idag i en kodbas som hade många avsiktliga console.logutdata i alla miljöer utom produktion så de dök upp i Jests testutdata. Det skulle ha varit tråkigt att gå och ta bort dem en efter en och så jag utarbetade denna enkla installation för att undertrycka all console.logutdata på en gång medan Jest körs.

Konfigurera Det finns

Det här tricket bygger på Jests inhemska förmåga att håna vad som helst. Vad vi i princip kommer att göra är att håna logmetoden för consoleobjektet och lämna de andra metoderna intakta.

Vi måste först berätta för Jest att köra en installationsfil innan testerna körs. För att göra detta redigerar vi jest.config.jsfilen som vanligtvis ligger i roten för ditt projekt med andra konfigurationsegenskaper och lägger till följande rad:

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

Vi kan kolla i Jests dokumentation vad det setupFilesAfterEnvgör:

En lista över sökvägar till moduler som kör någon kod för att konfigurera eller ställa in testramverket innan varje testfil i sviten körs.

Nu, när vi kör våra tester, kommer de först att utföra det jest.setup.jssom vi kommer att skapa nu.

Mocking console.log

Skapa en fil på src/setup.jseller var du än pekade på din väg i föregående steg. Du lägger sedan till det här:

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

Detta åsidosätter logmetoden och tillåter de andra. Eftersom jag fortfarande ville ha möjlighet att utmata något i testerna, mappade jag debugoch trace. Du kan mappa andra som du kan behöva så console.tableatt element i en tabell återges, användbara för att logga objekt eller arrayer. För att vara ärlig, tills jag skrev detta, hade jag aldrig tittat på konsolobjektsidan i MDN och det finns många intressanta metoder som den console.dirsom visar en interaktiv lista över egenskaperna för det angivna JavaScript- objektet.

Avslutningsord

Nu console.logär din utdata undertryckt medan dina Jest-test körs. Om du arbetar i ett team se till att du låter resten av teamet veta om denna förändring genom att dokumentera den eftersom någon kan bli stressad av att försöka göra console.lognågot och inte ser det där det ska vara.

Inspelningskälla: startfunction.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer