Spisie treści
Dziś jest dobry czas na bycie deweloperem w JavaScriptMożna powiedzieć, że jest to nawet ekscytujące, ponieważ technologie, które go obejmują, są dość dojrzałe, przeglądarki internetowe są bardziej ustandaryzowane i każdego dnia pojawiają się nowe rzeczy, z którymi można się bawić i eksperymentować.JavaScript jest językiem o ugruntowanej pozycji, a sieć jest obecnie główną platformą, na której widzieliśmy pojawianie się aplikacji jednostronicowych, rozprzestrzenianie się frameworków MVC, takich jak AngularJS lub Backbone.js, używając JavaScript po stronie serwera z Node.js a nawet aplikacje mobilne tworzone wyłącznie przy użyciu HTML, CSS Tak JavaScript z technologiami takimi jak TelefonGap.
Od swoich skromnych początków JavaScript był odpowiedzialny za służenie jako język do manipulowania danymi i walidacji ich w formularzach w HTML a obecnie jest używany do tworzenia potężnych aplikacji, które możemy zobaczyć w sieci. Widząc to można powiedzieć, że JavaScript Przeszła długą drogę, podobnie jak narzędzia, które pojawiły się, aby zapewnić nam taką samą jakość, jak gdybyśmy byli w innych językach.
Jednym z tych narzędzi jest Jaśmin, który jest niczym innym jak frameworkiem programistycznym zorientowanym na zachowanie i który pozwala nam tworzyć zautomatyzowane testy jednostkowe dla języka programowania JavaScript. Zanim zaczniesz w pełni korzystać z tego narzędzia, zobaczmy tło, które doprowadziło do jego rozwoju, a także kluczowe koncepcje, aby zrozumieć, jak to działa JavaScript.
Dziś nikt nie wątpi w moc JavaScriptJednak podczas pracy po stronie klienta pojawiają się komplikacje, a jednym z oczywistych powodów jest to, że nie możemy kontrolować jego środowiska wykonawczego. Na serwerze nie mamy tego problemu, ponieważ możemy uruchomić konkretną wersję Node.js ale w przypadku przeglądarki internetowej nie możemy nakazać użytkownikowi korzystania z określonej wersji Chrom lub Firefox.
Język JavaScript jest zdefiniowany w specyfikacjach ECMAScript więc każda przeglądarka może mieć własną implementację środowiska do jej uruchamiania, powodując małe różnice lub błędy między nimi. Każdy przedmiot JavaScript jest mutowalny, więc nie mamy żadnej kontroli, aby zapobiec nadpisywaniu przez moduł fragmentów innych, aby to zilustrować, spójrzmy na mały segment kodu, w którym możemy zobaczyć, jak łatwo jest nadpisać funkcję globalną konsola.log:
console.log ('test'); console.log = 'przerwa'; console.log ('test');Zobaczmy odpowiedź na konsoli, gdzie wyraźnie widać błąd, ponieważ nadpisaliśmy funkcję:
Taki sposób bycia językiem był decyzją podjętą w jego projektowaniu, ponieważ pozwalał programistom na dodanie do niego brakujących funkcjonalności, ale biorąc pod uwagę tę wszechstronność stosunkowo łatwiej jest popełniać błędy, nawet nowsza wersja języka wprowadziła funkcjonować Uszczelnienie obiektu co zapobiegło temu, ale jego obsługa rozszerzyła się tylko na kilka przeglądarek.
Kolejny problem, który przedstawiamy JavaScript jest obsługa typów, w innych językach wyrażenie takie jak '1' + 1 prawdopodobnie zgłosi błąd, ale w JavaScript dałoby to 11. Może to prowadzić do kilku trudnych do znalezienia problemów, na przykład załóżmy, że mamy następujące:
var a = 1, b = „5”, c = 4, d = 2; var wynik = a + b + c * d; console.log (wynik);Zobaczmy odpowiedź za pośrednictwem konsoli, gdy uruchamiamy nasz kod w przeglądarce:
Jak widać, wynikiem był ciąg znaków, więc jeśli oczekiwaliśmy liczby w specjalnej funkcji lub procedurze, może to spowodować problem, a znalezienie tego błędu może oznaczać zmarnowanie kilku godzin naszego cennego czasu na rozwój.
Ważne jest, aby wspomnieć, że punkty, o których właśnie wspomnieliśmy, nie są powodem do nieużywania JavaScriptChodzi po prostu o to, żeby zobaczyć, gdzie ma jakieś słabości, ale to nie znaczy, że jest to zły język, możemy nawet zapewnić, że możliwości, które nam przedstawia, są nieskończone w zakresie tworzenia aplikacji i co lepsze, wciąż mamy narzędzia, które my pomożemy z najlepszymi praktykami tego samego.
Jak wspomnieliśmy, Jaśmin Jest to niewielka struktura, która pomaga nam w testach jednostkowych w ramach naszych projektów i wykorzystuje filozofię rozwoju zorientowanego na zachowanie, którą wyjaśnimy później, ale zanim przejdziemy dalej, zobaczmy ważną koncepcję, a mianowicie, że są to testy jednostkowe.
Testy jednostkoweten testy jednostkowe Są to fragmenty kodu testujące funkcjonalności jednostek w kodzie naszej aplikacji, które na początku tej ścieżki pozostawiono deweloperowi z tradycyjną filozofią, która skupiała się na rozwoju zorientowanym na testowanie, a nie zorientowanym na zachowanie.
Dlatego twórcy Jaśmin restrukturyzują ten tradycyjny sposób testowania, w którym deweloper nie miał jasnego obrazu, od czego zacząć proces testowania, nie wiedząc, co testować i jak duży może być moduł testowy, a nawet jak nazwałby jeden z tych testów . Na przykład, jeśli użyjemy filozofii Jaśmin Aby przeprowadzić testy, załóżmy, że mamy odtwarzacz muzyczny, który będzie miał następujące kryteria akceptacji: Biorąc pod uwagę odtwarzacz, gdy utwór jest wstrzymany, musi wskazać, że utwór został wstrzymany.
Możemy więc wziąć kryterium i podzielić je w następujący sposób:
- Dany (początkowy kontekst)
- Kiedy (zdarzenie ma miejsce)
- Następnie (podejmowana jest czynność)
opisz („Gracz”, funkcja () {opisuj („Kiedy utwór jest wstrzymany”, funkcja () {it („Musi wskazywać, że utwór jest wstrzymany”, funkcja () {});});});Jak widzimy nasze kryteria zostały przeniesione do Jaśmin bez większych kłopotów, gdzie możemy powiedzieć, że każde kryterium jest przekładane na test jednostkowy.
Mogliśmy już przyjrzeć się jak Jaśmin obsługuje kryteria i tłumaczy je na swoją składnię, tworząc dla niego testy jednostkowe, ale aby się do tego dostać, najpierw zobaczmy, jak najpierw zdobyć framework. W tym celu przechodzimy na stronę projektu i pobieramy go:
POWIĘKSZAĆ
Po rozpakowaniu musimy przejść do folderu odległość, znajdziemy tam wszystkie dystrybucje Jaśmin do tej pory, gdzie zacząć z niego korzystać, musimy wybrać dystrybucję, którą chcemy, najlepiej najnowszą i rozpakować ją w folderze naszego projektu, wejść do folderu i uruchomić plik SpecRunner.html:Jaśmin Zawiera domyślnie kilka przykładów niektórych testów jednostkowych, w których plik SpecRunner.html odpowiada za linkowanie kodu Jasmine, który zawiera pliki źródłowe i pliki do testowania, zobaczmy jego zawartość:
Jasmine Spec Runner v2.2.0Jak widać, jest to dość proste i pozwala nam zdefiniować strukturę bazową naszych testów, dając nam pomoc w tym, od czego zacząć w świecie testów jednostkowych. Nie trzeba dodawać, że warto przyjrzeć się kodowi naszej dystrybucji Jaśmin w celu zapoznania się z jego działaniem.
Warto o tym wspomnieć Jaśmin nie ogranicza się tylko do kodu napisanego w czystym JavaScript, możemy testować aplikacje zbudowane z Backbone.js lub AngularJS, nawet jego wszechstronność idzie znacznie dalej i pozwala nam przeprowadzać testy po stronie serwera w przypadku, z którego korzystamy Node.js.
RekomendacjeJaśmin Jest to framework, który bardzo nam pomaga w testach jednostkowych, jednak użyte w nim koncepcje nie są takie proste, wspierają go pewne zaawansowane praktyki JavaScript takie jak generowanie kodu HTML za pomocą funkcji utwórzDom () aby wstawić w nim elementy, aby wymienić niektóre z tych cech, dlatego zalecamy zapoznanie się z dokumentacją JavaScript być bardziej przygotowanym na przyszłe tutoriale.
Na tym zakończyliśmy ten samouczek, w którym mogliśmy postawić pierwsze kroki z Jaśmin, przechodząc przez motywację tworzenia narzędzi do testowania JavaScript i jak rozwój zorientowany na zachowanie pomaga nam tworzyć lepsze testy, także widząc jak Jaśmin jest dość elastycznym frameworkiem do testowania, pozwalającym na używanie tej samej instancji do testowania wszelkiego rodzaju kodu w JavaScript w naszych aplikacjach.