BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Jasmine cz. 2: Kalkulator

11-07-2012 09:00 | Karol Rogowski
Testy Java Scriptu przy użyciu Jasmine na przykładzie kalkulatora.

W pierwszej częśćartykułu o Jasmine napisaliśmy (tutaj zaskoczenie) HelloWorld. W tej części postaram się zaprezentować kolejne funkcje i możliwości tej biblioteki. Stworzymy obiekt kalkulatora i postaramy się w sposób nieco bardziej złożony przetestować jego funkcje.

Będziemy korzystać w wersji podobnej jak w poprzednim projekcie:

Tworzymy dwa pliki, jeden w src i jeden w spec:

Jak widać oczekujemy po naszym teście, że metoda add z obiektu Calculator zwróci nam oczekiwany wynik. Uruchommy test i sprawdźmy czy wszystko działa poprawnie.

Test przebiegł poprawnie. Skomplikujmy sobie teraz nieco życie. Po pierwsze każdy kalkulator pamięta swój stan. Czyli jeżeli dodamy dwa razy po 5 otrzymamy ostatecznie 10. Napiszmy więc test sprawdzający czy taki scenariusz działa i czy nasz kalkulator ma coś takiego jak obecny stan.

Nasz zmodyfikowany test składa się z dwóch części. Pierwsza sprawdza czy obiekt ma w ogóle zdefiniowane pole, a druga czy sekwencja dodawania będzie pamiętała wartość.

Nasze oba testy zostały oczywiście oblane. Dostosujmy więc nasz obiekt tak aby przeszedł je pomyślnie.

Teraz gdy nasz kalkulator pamięta już stan, zmodyfikujmy go tak aby mógł przyjmować ciągi znaków. I przetestujmy tą funkcjonalność.

Uruchamiamy nasz test i obserwujemy wynik.

Wynik może być zaskoczeniem. Otrzymujemy informację że 16 nie równa się 6. Ale dlaczego 16. Chodzi o to, że cały proces testowy jest kolejnymi działaniami na tym samy stanie. Poradzić sobie  z tym problemem można następująco.

Dzięki funkcji beforeEach możemy zadeklarować zachowanie odpalane przed każdym testem.

Ostatnim przykładem będzie test, gdzie na początku zmieniamy coś w obiekcie. Przetestujemy resetowanie stanu kalkulatora i jako bonus zmienimy nieco budowę naszego drzewka testów ;)

Załączniki:

Podobne artykuły

Komentarze 0

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.