TDD, testowanie aplikacji springowych.

Odpowiedz Nowy wątek
Krzywy Kura
2018-09-23 12:06
Krzywy Kura
0

Ostatnio zainteresowałem się tematem TDD.
Obejrzałem kilka prezentacji na ten temat i podejście test first wydaje mi się fajne, ale

dla prostych metod np. dodawania, odejmowania itd pisanie testów first wydaje się być banalne ale aktualnie pracuje nad projektem springowym, dużo zależności, dużo wstrzykiwania zależności.
Jak testować takie metody które wymagają duzo zależnosci, mockowanie wszystkiego wydaje się slabe a stubowanie z fixowanym zwrotem wydaje się być bezsensu.
Drugie pytanie, aplikacja dzielona jak tysiące innych controller/serwis/repo. Testować wszystko? Dla controllerów wysyłąć zapytania i sprawdzać co zwraca, dla serwisów i repo pisać testy z danymi ktore fixujemy?

Każda porada dot. testów i pisania ich bedzie pomocna, dziekuje

Pozostało 580 znaków

2018-09-23 12:11

Rejestracja: 5 lat temu

Ostatnio: 15 godzin temu

Lokalizacja: Poznań

0

Pisać kod taki który nie ma dużo zależności :D
Nie testujesz kodu tylko zachowania, dlatego nie ma sensu testować kontrolerów bo nie powinno być tam logiki.
Jest pewna dość kontrowersyjna metoda, czyli napisanie części logiki aplikacji niezależnej od frameworków (to akurat jeszcze nie jest kontrowersyjne, a zalecane) i potem do testów startować całą tę warstwę. Musisz sobie napisać niestety klasę która będzie udawała context springowy (czyli tworzyła obiekty i wstrzykiwała je sobie nawzajem), ale może być to upierdliwe dla dużych systemów. Możesz wtedy testować zachowanie całej aplikacji, przy jakichś tam warunkach. Niestety nie zawsze ta drogą jest wygodniejsza, wszystko tak na prawdę zależy jaki to system, jak duży, co robi i co potrzebujesz testować


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.

Pozostało 580 znaków

2018-09-23 12:12

Rejestracja: 2 lata temu

Ostatnio: 14 godzin temu

0

Tutoriale Spring Boota pokazuję z grubsza jak można testować te Springowe rozwiązania. Ja już teraz repozytoriów nie testuję, jedynie kontrolery i serwisy. No chyba, że repo ma jakieś nadpisane natywne zapytanie, no to samo przez się sie rozumie. Generalnie Spring Data mnie nie zawodzi.

Ja osobiście przeszedłem drogę przez mękę jak miałem testować w chuj powiązane serwisy (abstrachując od wysokiej kohezji).
Książki o TDD pokazują tylko koncepcję, a później z frameworkami trzeba głowić się samemu.

Pozostało 580 znaków

Krzywy Kura
2018-09-23 12:37
Krzywy Kura
1

Akurat o testowaniu wszystkiego dowiedzialem sie z tego filmu

Tam dziewczyny testuja doslowie wszystko

Pozostało 580 znaków

2018-09-23 19:32

Rejestracja: 16 lat temu

Ostatnio: 1 tydzień temu

0

To ja odpowiem, jak ja to robię w dużym systemie.
Przede wszystkim rozbieram zadanie na mniejsze części i tworzę dla nich specyfikacje - czyli testy, które określają, jakie powinno być działanie danej metody.
No i tutaj normalny tryb czerwony-> zielony-> refaktor.
Jak już mam te "komponenty" przetestowane jednostkowo, to pisze test integracyjny, aby sprawdzić, czy wszystko razem działa.
Jako mul książkowy, polecam dwie pozycje: TDD. "Sztuka tworzenia dobrego kodu" - Kent Beck i TDD. "Programowanie w Javie sterowane testami" - Viktor Farcic, Alex Garcia


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0