Sławek Rudawski

Hyde open source and mobile first theme for Jekyll. Made by @mdo.

© 2017. Sławek Rudawski All rights reserved.

Stop! Teraz testy

Po dość owocnym okresie tworzenia kodziku wyrzuty sumienia zaczynają gryźć niemiłosiernie, a widmo zbliżającej się klęski majaczy się na horyzoncie. O czym mowa - proste o projekcie bez testów. Po stronie mobilnej tworzenie aplikacji przypomina bardzo długiego spike’a, którego zadowalające (mnie) efekty lądują w repozytorium. Jako że szkielet aplikacji jest gotowy, czas dodać testy, które pokryją kodzik…

__test__

Katalog o wiele mówiącej nazwie jest częścią template’a, który tworzy się za pomocą komendy react-native init. Znajdują się w nim 2 pliki testujące przykładowy kodzik na platformę Android i iOS. Mnie się nie przydadzą, więc wylatują. Na ich miejsce pojawi się kod testujący Reducery, Actions i Components. Jako że Redux leci z nami, testowanie powinno być błahostką.

Jest

Facebook tworząc Reacta nie zapomniał o jednej z ważniejszych części życia oprogramowania (i dewelopera :)) - o testowaniu - i przygotował całkiem wygodną bibliotekę (sami określają ją mianem Painless JavaScript Testing). Painless i JavaScript? Sprawdźmy ten oksymoron. Na pierwszy ogień idzie Reducer. Będzie stosunkowo łatwy do przetestowania, gdyż przetwarza informację zawartą w otrzymanym obiekcie Action, transformując stan aplikacji.

Kod odpowiedzialny za obsługę zmiany stanu połączenia z hubem signalR:

Możemy przetestować tak:

Urzeka fluent api i mnogość funkcji sprawdzających efekt testów. Na pokładzie biblioteki znajdziemy funkcje sprawdzające obiekty jak i obiekty, programista .net odnajdzie też odpowiedniki assertów ze swojej ulubionej biblioteki na N czy x. Oczywiście Jest posiada obszerną dokumentację. Wspomniałem już o możliwości mockowania? Nic tylko brać i testować.

Żeby uruchomić nasze testy wystarczy w konsoli uruchomić magiczną komendę npm test