Kuidas peita JavaScripti console.log väljund Jesti testides
Töötasin täna koodibaasis, millel oli palju tahtlikke console.log
väljundeid kõigis keskkondades, välja arvatud tootmise, nii et need ilmusid Jesti testide väljundis. Oleks olnud tüütu neid ükshaaval eemaldada ja seetõttu mõtlesin välja selle lihtsa seadistuse, et console.log
Jesti töötamise ajal kõik väljundid korraga maha suruda.
Seadistamine On olemas
See trikk tugineb Jesti omapärasele võimele kõike mõnitada. Põhimõtteliselt teeme objekti log
meetodi pilkamist console
ja jätame teised meetodid puutumata.
Esmalt peame enne testide käivitamist käskima Jestil häälestusfaili käivitada. Selleks redigeerime jest.config.js
tavaliselt teie projekti juurtes asuvat faili koos muude konfiguratsiooniatribuutidega ja lisame järgmise rea:
setupFilesAfterEnv: ['/src/jest.setup.js']
Saame Jesti dokumentatsioonist kontrollida, mida see setupFilesAfterEnv
teeb:
Moodulite teede loend, mis käitavad testimisraamistiku konfigureerimiseks või häälestamiseks mõnda koodi enne komplekti iga testfaili käivitamist.
Nüüd, kui me oma teste käivitame, käivitavad nad esmalt selle jest.setup.js
, mille me nüüd loome.
Pilkav console.log
Looge fail kohas src/setup.js
või kõikjal, kuhu eelmises etapis oma tee osutasite. Seejärel lisate sellele selle:
global.console = {
log: jest.fn(),
debug: console.debug,
trace: console.trace,
}
See on log
meetodi ületamine ja teiste lubamine. Kuna ma tahtsin ikkagi, et mul oleks võimalus testides midagi väljastada, siis kaardistasin debug
ja trace
. Saate kaardistada teisi, mida võite vajada, näiteks console.table
renderdades tabeli elemente, mis on kasulikud objektide või massiivide logimiseks. Ausalt öeldes polnud ma enne selle kirjutamist kunagi MDN-is konsooliobjekti lehte vaadanud ja seal on palju huvitavaid meetodeid, nagu näiteks see console.dir
, mis kuvab interaktiivse loendi määratud JavaScripti objekti omadustest.
Lõpusõnad
Nüüd suletakse teie console.log
väljund Jesti testimise ajal. Kui töötate meeskonnas, andke ülejäänud meeskonnale sellest muudatusest teada, dokumenteerides selle, kuna keegi võib stressi teha, kui proovite console.log
midagi teha ja ei näe seda kohas, kus see peaks olema.