Testowanie kontrolera i metod statycznych.

0

Hej

Jaki jest sens testowania kontrolera, który jedyne co robi to woła serwisy logiki oraz przeprowadza translacje do i z json-a (zapomniałem właściwego terminu).

Ponadto czy macie praktykę testowania staycznych helperow z małą logiką, np jednym if-em.

0

taki sens, ze wlasnie to dokladnie to robi.

Jezeli tego nie bedzie robil (nie wywola tych metod) to wtedy nie bedziesz wiedziec czy flow dziala

Chyba, ze masz feature testy to wtedy mozna by teoretycznie ominac unit test takiego kontrolera

oczywiscie ze tak. Test czesto daje kontekst jak powinna dana metoda byc uzywana. (to jest jedna z zalet pisania testow)

7

Tak, ale nie "jednostkowo" tylko integracyjnie. Tzn stawiasz to i faktycznie uderzasz w taki endpoint restem i sprawdzasz czy zachował się poprawnie i zwrócił co miał zwrócić.

1

Ja nigdy nie testuję kontrolerów w ogóle, bo u mnie kontrolery nie zawierają żadnej logiki, którą można przetestować, one tylko odbierają dane, przekazują dalej i zwracają wynik.
Co do metody statycznej z ifem, to raczej bym testował.

0

W typowych frameworkach javowych czyli np. SpringMVC, te kontrollery to takie kontrolery tylko z nazwy - czyli zwykłe serwisy, tylko na poziomie http.

Logika, która tam sie znajduje (nawet jeśli jej nie widać) - to walidacja, obsługa błędów, security.
Można ja testować jakimś Webclientem. Czasem ma to sens. Czasem testuje się na poziomie routing, bez użycia TCP, ale musi to być wspierane przez framework.

Dla mnie to nie są testy integracyjne, bo z niczym się nie integruje.
Nie są to też teesty jednostkowe, ponieważ mają jakiś sens ( :-) ). Są to po prostu normalne testy.

0

Pracowałem z zespołami akurat ze świata jvm i springa, które testowały takie kontrolery o w ten sposób -> https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4.

Aktualnie pracuję z zespołem .Net core i panowie mają gdzieś testowanie kontrerów (api aplikacji), mają przestestowaną logikę serwisów a testowanie:

a) serializacji
b) czy odpowiednie metody wołają właściew serwisy

uważają za stratę czasu.

Nie wiem czy znacie tego pana Nabrdalika i jego konferencję na tamat porządkowania kodu w javie

Ale on powiedział jedną ciekawą rzecz na temat testowania (od 51 minuty.

"Integracyjnie to testuję tylko krtyczną ścieżkę biznesową, która robi chajs, resztę przetestuję sobie jednostkowo".

0
InterruptedException napisał(a):

Jaki jest sens testowania kontrolera, który jedyne co robi to woła serwisy logiki oraz przeprowadza translacje do i z json-a (zapomniałem właściwego terminu).

Jeśli coś przeprowadza serializację to nie jest już kontrolerem. To jest odpowiedzialność warstwy sieciowej a nie kontrolera.

InterruptedException napisał(a):

Ponadto czy macie praktykę testowania staycznych helperow z małą logiką, np jednym if-em.

Mały statyczny helper, czyli prosta funkcja bez zachowania stanu. Ergo zwykły test jednostkowy powinien to ogarnąć.
Może nie opisałeś właściwego problemu, przez co nie widać, czemu testowanie tego jest problematyczne.

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