✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak ukryć wyjście JavaScript z console.log w testach Jest?

7

Pracowałem dzisiaj w bazie kodu, która miała wiele celowych console.logdanych wyjściowych we wszystkich środowiskach poza produkcyjnym, więc pojawiały się one w wynikach testów Jest. Byłoby nużące, aby usunąć je jeden po drugim, więc wymyśliłem tę prostą konfigurację, aby tłumić wszystkie console.logdane wyjściowe naraz, gdy jest uruchomiony.

Configuring Jest

Ta sztuczka opiera się na wrodzonej zdolności Jest do wyśmiewania czegokolwiek. To, co zasadniczo zrobimy, to zakpić logmetodę consoleobiektu i pozostawić inne metody nienaruszone.

Najpierw musimy powiedzieć Jest, aby wykonał plik instalacyjny przed uruchomieniem testów. Aby to zrobić, zmodyfikujemy jest.config.jsplik, który zwykle znajduje się w katalogu głównym projektu, z innymi właściwościami konfiguracyjnymi i dodamy następujący wiersz:

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

Możemy sprawdzić w dokumentacji Jest, co setupFilesAfterEnvrobi:

Lista ścieżek do modułów, które uruchamiają kod w celu skonfigurowania lub skonfigurowania platformy testowej przed wykonaniem każdego pliku testowego w pakiecie.

Teraz, kiedy uruchamiamy nasze testy, najpierw wykonają to jest.setup.js, co teraz utworzymy.

Mocking console.log

Utwórz plik w src/setup.jsmiejscu lub w miejscu wskazanym w poprzednim kroku. Następnie dodasz do niego:

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

To jest nadrzędne wobec logmetody i dopuszczanie innych. Ponieważ nadal chciałem mieć możliwość wyprowadzania czegoś w testach, zmapowałem debugi trace. Możesz mapować inne, których możesz potrzebować, tak jak console.tablerenderuje elementy w tabeli, przydatne do rejestrowania obiektów lub tablic. Szczerze mówiąc, dopóki tego nie napisałem, nigdy nie zaglądałem do strony obiektu konsoli w MDN i istnieje wiele interesujących metod, takich jak ta console.dir, która wyświetla interaktywną listę właściwości określonego obiektu JavaScript.

Słowa zamykające

Teraz twoje console.logdane wyjściowe są tłumione podczas uruchamiania testów Jest. Jeśli pracujesz w zespole, upewnij się, że powiadomiłeś resztę zespołu o tej zmianie, dokumentując ją, ponieważ ktoś może się zestresować, próbując console.logczegoś i nie widzieć tego tam, gdzie powinno być.

Źródło nagrywania: startfunction.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów