Adresaci szkolenia:

Szkolenie adresowane jest do programistów JavaScript, tworzących aplikacje w AngularJS. Kierowane jest do osób chcących zwiększyć pewność siebie podczas tworzenia oprogramowania (mniej regresji i nieprzewidzianych defektów) oraz uzyskać lepszą jakość i czytelność kodu.

Cel szkolenia:

Uczestnicy czują się pewnie stosując TDD w codziennej pracy swojego zespołu.

Jako że TDD jest trudne, szkolenie nie sprawi, że wszyscy staną się ekspertami. Jednak przeszkolenie całego zespołu daje dużą szansę, że zespół przyjmie tę praktykę.

W ramach szkolenia uczestnicy poznają i przyswoją cykl pracy TDD, nauczą się projektować oprogramowanie pod względem testowalności i tworzyć czytelny kod. Poznają biblioteki ułatwiające stosowanie TDD oraz umożliwiające testowanie na różnych poziomach. Dzięki uwzględnieniu specyfiki AngularJS szkolenie przygotowuje do wykorzystania TDD w tej technologii.

Mocne strony szkolenia:

Uczestnicy przyswajają wiedzę w najskuteczniejszy możliwy sposób – praktykując TDD podczas serii ćwiczeń. Po szkoleniu czują i rozumieją, czym TDD jest i jak je zastosować w pracy. Każdy moduł zawiera warsztaty. Większość ćwiczeń polega na test-drive’owaniu przy użyciu prezentowanych technik. W trakcie szkolenia uczestnicy zbudują z pomocą TDD kompletną aplikacją Angularową.

Wymagania:

Znajomość JavaScript i AngularJS.

Parametry szkolenia:

3*8 godzin (3*7 godzin netto) wykładów i warsztatów (z wyraźną przewagą warsztatów).

Wielkość grupy: maks. 8-10 osób.

Program szkolenia

Podstawy TDD

  • dlaczego TDD może Ci pomóc

  • stosowanie cyklu TDD Red-Green-Refactor

  • definicja TDD

Testowanie jednostkowe

  • rodzaje i poziomy testów: jednostkowe, integracyjne, akceptacyjne…

  • co to jest test jednostkowy?

  • specyfika testowania aplikacji JS

  • środowisko do testowania w JavaScript: Karma, Grunt, PhantomJS, Jasmine*

  • możliwości Jasmine

  • pisanie czytelnych asercji przy użyciu biblioteki Chai*

Tworzenie utrzymywalnych testów

  • nazewnictwo testów

  • struktura testu Arrange/Act/Assert

  • dane w testach

  • testy sparametryzowane

Testy współpracujących obiektów

  • wykorzystanie dublerów testowych (Test Doubles) w celu izolacji testowanego kodu

  • różnice między mockami a stubami

  • mockowanie w Jasmine

  • testy zależne od czasu i daty

Projektowanie testowalnej aplikacji

  • modularyzacja aplikacji

  • enkapsulacja a testowalność

  • Dependency Injection (wstrzykiwanie zależności)

  • zasada pojedynczej odpowiedzialności (Single Responsibility Principle)

Test-drive’owanie aplikacji Angularowej

  • test-drive’owanie serwisów i filtrów

  • test-drive’owanie kontrolerów

  • test-drive’owanie kodu asynchronicznego: promise’y, http (np. klient REST)

  • test-drive’owanie dyrektyw

Refaktoryzacja

  • jak rozpoznać i naprawić brzydkie zapachy w kodzie (Code Smells)

  • pisanie czystego kodu w JavaScript - przydatne wzorce

  • najczęściej stosowane refaktoryzacje

  • refaktoryzowanie małymi krokami przy przechodzących testach

Krótkie spojrzenie na BDD/Specification by Example

  • używanie przykładów do komunikacji z biznesem

  • automatyzowanie przykładów z wykorzystaniem Cucumber-JS

Testy symulujące działania użytkownika z Protractor

  • kiedy potrzebujemy testów end-to-end

  • zalety i wady testów z poziomu przeglądarki

  • wprowadzenie do Protractora

  • wsparcie dla AngularJS w Protractorze

* możliwe użycie innych bibliotek i narzędzi na życzenie klienta

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email