devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
QA
Home›QA›React Native Testing Library 2.0

React Native Testing Library 2.0

By Bernadeta Zapała
8 czerwca 2020
179
0
Share:

React Native Testing Library 2.0

React Native Testing Library (RNTL) jest prostym rozwiązaniem, które służy do testowania komponentów React Native. Niedawne wydanie wersji React Native Testing Library 2.0 zapewnia nowe, przydatne funkcje. Dopracowane interfejsy API czy poprawa zgodności z innymi implementacjami biblioteki testowej są efektem ciężkiej pracy członków zespołu.

Czym jest React Native Testing Library?

Przede wszystkim RNTL zapewnia funkcje użytkowe react-test-renderer, dlatego programiści są zawsze na bieżąco z najnowszymi funkcjami React.

Nowa wersja — React Native Testing Library 2.0

W celu ułatwienia przejścia do nowej wersji wydany został przewodnik migracji, w którym znajduje się opis wszystkich wprowadzonych zmian. Poniżej opiszemy najważniejsze ulepszenia nowej wersji.

Wprowadzone ulepszenia i poprawki

Ze względu na przekroczenie daty wsparcia dla Node 8, cały ekosystem przeniósł się do wersji Node 10.

Wśród najistotniejszych zmian jest także usunięcie renderowania shallow. Ze względu na pomijane błędy aplikacji, nie jest najlepszym sposobem na renderowanie komponentów React.

Następną poprawką jest domyślne wzywanie cleanup po każdym teście. Warunkiem jest obsługa przez platformę hooka afterEach. Pozwoli to usunąć z plików testowych wszelkie wywołania afterEach(cleanup).

W poprzedniej wersji formuły getByTestId (a także queryByTestId), pozwalały zapytaniom znajdować komponenty niestandardowe. Nie były one przekazywane do testID komponentów rodzimych. Błąd powodował, że znajdowano więcej testID niż w natywnej hierarchii.

Automatycznie zapakowane są teraz połączenia waitFor i dalej – findBy do narzędzia act. Celem jest unikanie ostrzeżenia act w testach obejmujących asynchroniczną mutację stanu.

Inne przełomowe zmiany

Godne uwagi jest wprowadzenie zapytania findBy. Jest to kombinacja wspomnianego wcześniej zapytania waitFor oraz getBy. Podstawowe argumenty są dokładnie takie same jak odpowiednie zapytania getBy. Jednak, zamiast rzeczywistego elementu zwracają Promise. Poniżej znajduje się przykładowy kod, z zastosowaniem tego zapytania.

```js

await expect(findByText('Some Text')).resolves.toBeTruthy();

await expect(findByText('Some Text', { timeout: 1000 })).resolves.toBeTruthy();

```

Następnym wprowadzonym operatorem jest within. Korzysta się z niego w przypadku zapytań elementów o konkretną listę powtarzających się elementów. Jego celem jest pozwolenie na wykonywanie zapytań o wybranym elemencie, a także jego elementach potomnych.

React Native

Niebezpieczne oznaczenia

Z pewnością należy zwrócić uwagę na oznaczenie zapytań byType oraz byProps jako niebezpieczne. Całą rodzinę tych formuł oznaczono przedrostkiem UNSAFE_. Nie zaleca się korzystać z nich, dlatego, że często powodują mniej wiarygodne testy. Podczas gdy te funkcje są oznaczone jako niebezpieczne, wciąż są zachowane te interfejsy API. Jest tak dlatego, że autorzy nie są jeszcze w stanie zapewnić prostej ścieżki migracji, a są użytkownicy, którzy prawdopodobnie spędzili wiele godzin na napisanie testów.

Podsumowanie

Autorzy biblioteki React Native Testing v.2.0 pracują dalej, także nad dostarczeniem wysokiej jakości przewodników i przykładów testowania rodzimych modułów React Navigation, Redux czy JS. Mają oni nadzieję, że powyższe aktualizacje poprawią komfort codziennej pracy.

Źródła:

  • https://callstack.com/blog/react-native-testing-library-2-0
  • https://callstack.github.io/react-native-testing-library/
TagsOpen SourceReact NativeReact Native Testing Library 2.0Testing

Share:

  • Informacje

    Xcode – złośliwy atak na komputery Mac

  • Systemy i przeglądarki

    Edge 84 z ulepszeniami PDF i nowymi kolekcjami

  • Frontend

    FAST Microsoftu z systemami projektowania adaptacyjnego

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

  • 24 listopada 2020

    Tailwind CSS 2.0 z narzędziami kontroli tekstu

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT