Testy w Spring boot

Odpowiedz Nowy wątek
2016-09-22 07:29

Rejestracja: 9 lat temu

Ostatnio: 23 godziny temu

0

Zastanawiam się, które metody z których klasy powinienem testować. Mam do wyboru :

service - jest tam cała logika, mieszają się różne service, wstrzykiwane jest dao,odbywają się zapisy do bazy itp
rest controller - wywoływane są tu metody service na odpowiednich url, ResponseEntity z HttpStatus i HttpHeaders .

edytowany 1x, ostatnio: davyd, 2016-09-22 07:32

Pozostało 580 znaków

2016-09-22 07:38

Rejestracja: 4 lata temu

Ostatnio: 3 dni temu

2

Testy serwisów -> jednostkowe, mokujesz dao i sprawdzasz czy się dobrze wywołało i czy dobra logika zaszła
Testy DAO -> integracyjne, sprawdzasz czy faktycznie w bazie się zapisało (po teście rollback oczywiście)
Testy kontrolerów -> jednostkowe, trochę tam mockowania będzie, ale z pomocą przyjdzie mockMvc i wtedy sprawdzasz czy odpowiednie metody serwisowe się wywołują

co ? dobrze mówi - @Koziołek chyba że znasz lepszy sposób, bardziej funkcyjny funkcjonalny i napisany w Elixir, oświeć nas ! - rubaszny_karp 2017-12-16 12:17

Pozostało 580 znaków

2016-09-22 07:49

Rejestracja: 9 lat temu

Ostatnio: 23 godziny temu

0

ok czyli tak naprawdę prawie całą strukturę aplikacji:
dao,service i controller. A jakie narzędzie ? Ponieważ znam bardzo podstawy Spock i JUnit i chciałbym coś z tych dwóch poznać lepiej.

Pozostało 580 znaków

2016-09-22 10:21

Rejestracja: 4 lata temu

Ostatnio: 9 godzin temu

0

http://4programmers.net/Forum/Inzynieria_oprogramowania/276798-wstrzykiwanie_zaleznosci_a_testyjednostkowe-_zloty_srodek?start=20
tutaj masz dysputy na ten temat, problem w tym ze ciezko cos wywnioskowac, bo co czlowiek to trzy opinie.

Pozostało 580 znaków

Bialy
2017-12-15 23:07
Bialy
0

Czy testy moga byc tranzakcyjne czy raczej powinno sie tego unikac?

Zależy co testujesz. Jak zmiany w bazie lub jakiejś innej warstwie persystentnej to tak, bo przecież musisz zrobić rollback. W innych przypadkach transakcji być nie powinno. - wartek01 2017-12-16 10:09

Pozostało 580 znaków

Bialy
2017-12-16 10:29
Bialy
0

@wartek01:
http://www.nurkiewicz.com/201[...]-transactional-tests.html?m=1

Osobiscie wolalem miec transactional na serwisie. A testy tranzakcyjne to moim zdaniem czasem udawanie, ze cos dziala...

Pozostało 580 znaków

2017-12-16 11:30

Rejestracja: 7 lat temu

Ostatnio: 11 godzin temu

0
Bialy napisał(a):

@wartek01:
http://www.nurkiewicz.com/201[...]-transactional-tests.html?m=1

Osobiscie wolalem miec transactional na serwisie. A testy tranzakcyjne to moim zdaniem czasem udawanie, ze cos dziala...

Nie do końca rozumiem. Co ma @Transactional w serwisie do testowania jedbostkowego?

Jeśli chcesz przetestować serwis to mockujesz DAO i testujesz na mocku (czy serwis wywołuje metodę z DAO z odpowiednim parametrem). Wtedy odcinasz się od dbania o zawartość bazy danych.

edytowany 1x, ostatnio: wartek01, 2017-12-16 11:34

Pozostało 580 znaków

Bialy
2017-12-16 12:15
Bialy
0

@wartek01:
No nie chodzi mi o testowanie jednostkowe a integracyjne.

I chodzilo mi o uzycie adnotacji @transactional na tescie. Co osobiscie mi sie nie podoba. Wole tylko na serwisie/dao cokolwiek ale nie tescie.

Pozostało 580 znaków

2017-12-16 14:37

Rejestracja: 5 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Warszawa

0

Biały, transkacje normalnie są na obiektach z logiką bizensową, ale jeśli mamy testy endpointowe zamiast jednostkowych to oznaczamy je @Transactional żeby po wykonaniu testu inserty, updaty i delejty się zrollbackowały ;)
Ogólnie to polecam Spocka i Grooviego to testów :)


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

Bialy
2017-12-16 14:53
Bialy
0
scibi92 napisał(a):

Biały, transkacje normalnie są na obiektach z logiką bizensową, ale jeśli mamy testy endpointowe zamiast jednostkowych to oznaczamy je @Transactional żeby po wykonaniu testu inserty, updaty i delejty się zrollbackowały ;)
Ogólnie to polecam Spocka i Grooviego to testów :)

Wiem to wszystko.
Ale dalej nie raz mialem jakies problemy w stylu, ze test dzialal bo byla nad nim adnotacja transactional a w normalnej aplikacji okazywalo sie, ze cos jednak nie dziala. I ten transactional ukryl bląd.

Pozostało 580 znaków

Bialy
2017-12-16 14:55
Bialy
0

Spock calkiem spoko ale groovy nie raz mnie poirytowal ;)

Pozostało 580 znaków

Odpowiedz

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