Jasmine i Javascript

Jasmine – behaviour driven develeopment framework służący do testowania kodu napisanego w javascripcie:

Jasmine

Pierwszy raz miałem z nim do czynienia około 1,5 roku temu. Do aplikacji pisanej w Angularze potrzebowaliśmy jakiegoś wygodnego frameworka. Wybór padł na gwiazdę dzisiejszego posta. Dlaczego? Bardzo łatwa instalacja, konfiguracja i automatyczna integracja z ReSharperem. Możemy wybrać wersję Jasmine, to czy uruchamiamy testy bezpośrednio w fizycznej przeglądarce, czy wykorzystujemy PhantomJS:

jasmine_resharper

Następnie pozostaje nam stworzenie projektu z testami, zareferowanie Jasmine i można startować z pisaniem kodu testowego. Może to wyglądać tak jak poniżej:

angularjasmine

W powyższym przykładzie oczekujemy, że „test przelicza sumę wszystkich godzin” prawidłowo. Następnie przygotowujemy kolekcję poszczególnych godzin. W linii 79 oczekujemy, że funkcja getHoursTotal, która przyjmuje jako argument wcześniej utworzoną kolekcję, zwróci nam w wyniku 5, czyli prawidłową sumę godzin.

Po lewej stronie widać natomiast, że ReSharper po konfiguracji rozpoznał, że jest to test. Nie pozostaje nic innego, jak go uruchomić (w tym przypadku przeglądarce, ale nie trzeba):

jasmineresult

JS – Booking Hour to opis modułu, który testujemy:

describe(‚JS – Booking Hour’, function () {

it(„calculates total hours”….)

}

natomiast „calculates total hours” to linia 73 naszego kodu.

I w taki oto prosty sposób możemy testować nasz javascriptowy kod 🙂

2 uwagi do wpisu “Jasmine i Javascript

  1. Trochę ubogo 😉 Warto by było poruszyć kwestię spyOn, zagnieżdzonych bloków funkcji describe czy innych podstawowych elementów. Skoro pisaliście w Angularze to można też było skorzystać z Karmy, która również pozwoliłaby lepiej tworzyć kod pokryty testami 🙂

    Pozdrawiam

Zostaw komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s