• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Testy jednostkowe

Object Storage Arubacloud
0 głosów
537 wizyt
pytanie zadane 29 lutego 2020 w Java przez StressedOut Nowicjusz (210 p.)
Cześć,

Zaczynam pierwszy swój projekt, który zacznę pisaniem testów(tak jak to wszyscy polecają).

Z testami nie mam dużego doświadczenia, napisałem może z kilkanaście prostych metod testujących nic poza tym.

Pytanie jest czy testy mam pisać tak naprawdę od początku początku. Tzn. piszę najpierw testy bez jakichkolwiek interfejsów, klas, które nic nie zwracają czy najpierw zrobić sobie taki szablon co tam będzie się działo i dopiero po testach to implementować?

 

Pozdrawiam

2 odpowiedzi

0 głosów
odpowiedź 29 lutego 2020 przez Benek Szeryf (90,870 p.)
wybrane 29 lutego 2020 przez StressedOut
 
Najlepsza
Zgodnie z TDD powinieneś najpierw napisać test, nawet jeśli funkcja/metoda nie istnieje. Test powinien sfailować, co pozwoli Ci wykluczyć przypadek, że test przechodzi zawsze (czyli przypadek, gdy jest on niepoprawnie zaimplementowany). W następnym kroku tworzysz kod, który powinien ten test przejść.

W dalszych krokach wymyślasz coraz trudniejsze przypadki, np. corner case'y i wsadzasz je do testu. Test failuje, poprawiasz kod. Nigdy na odwrót*. Chodzi o to, byś podczas tworzeniu kodu nie dopasowywał testu do czego, co już zaimplementowałeś.

* W praktyce zdarza się, że unit testy powstają na koniec, gdy kod jest już gotowy ;)
komentarz 29 lutego 2020 przez obl Maniak (51,280 p.)
Dla mnie to jest nie logiczne. Jak można przetestować poprawność działania metody klasy, której nie ma? Najpierw piszesz test a potem do niego klasę? Trochę to dziwne, ale ok.
komentarz 29 lutego 2020 przez Benek Szeryf (90,870 p.)

Obejrzyj sobie ten filmik: https://www.youtube.com/watch?v=vgfcnouWe60.

komentarz 29 lutego 2020 przez Ehlert Ekspert (212,670 p.)

Reklamacje do tego panalaugh

komentarz 1 marca 2020 przez obl Maniak (51,280 p.)
Ciekaw jestem jak napiszesz test do metody rysującej coś na kanwasie
komentarz 1 marca 2020 przez Ehlert Ekspert (212,670 p.)
Podaję hasło. Mocki, sinon.
komentarz 1 marca 2020 przez obl Maniak (51,280 p.)
Rozumiem, że piszesz tak jakbym tego nie znał :)
komentarz 1 marca 2020 przez Ehlert Ekspert (212,670 p.)
No to nie wiem z czym masz problem.
komentarz 1 marca 2020 przez obl Maniak (51,280 p.)
komentarz 2 marca 2020 przez kubaapk Nałogowiec (44,270 p.)
No to więc nadal nie rozumiem jaki masz problem w napisaniu testów do metody rysującej po canvasie, no chyba, że chcesz testować jednostkowo czy Ci się piksele poprawnie namalowały to nie ma dyskusji.
0 głosów
odpowiedź 29 lutego 2020 przez obl Maniak (51,280 p.)
Przecież, żeby coś przetestować to najpierw to coś musisz mieć. Jak chcesz np, przetestować metodę klasy, której jeszcze nie napisałeś?
komentarz 29 lutego 2020 przez Benek Szeryf (90,870 p.)

Spójrz na to w ten sposób. Ty już masz ten test, ale w głowie. Na przykład masz napisać funkcję, która sprawdza Ci, czy równanie kwadratowe ma miejsca zerowe, czyli czy delta jest nieujemna. Wiesz, że wzór na deltę to b^2 - 4*a*c. W zasadzie możesz na tym poprzestać i zaimplementować ten wzór w ciele funkcji. Załóżmy, że wzór jest bardziej skomplikowany, a Ty chcesz mieć pewność, że poprawnie go wklepałeś. Wtedy sobie ustawiasz b=0 i a oraz c > 0.  Wiesz, że funkcja wtedy zwróci false -> brak miejsc zerowych. I to możesz sprawdzić przed napisaniem jakiegokolwiek kawałka kodu. Oczywiście test będzie failował dopóty, dopóki poprawnie nie wypełnisz ciała funkcji.

komentarz 29 lutego 2020 przez obl Maniak (51,280 p.)
Dobra tobie chyba nie chodzi o napisanie testu w sensie kodu tylko stworzenie przypadków testowych. Jeżeli tak to już załapałem. Dzięki.
komentarz 29 lutego 2020 przez Benek Szeryf (90,870 p.)
Jak najbardziej chodzi mi o napisanie testu w sensie kodu. Przypadki testowe są dodawane w iteracyjny sposób wraz z ulepszaniem samej funkcji.
komentarz 29 lutego 2020 przez obl Maniak (51,280 p.)
Ok, obejrzałem filmik rozumiem choć nie podoba mi się to podejście.

Podobne pytania

0 głosów
1 odpowiedź 375 wizyt
pytanie zadane 4 maja 2021 w Java przez janyczek Początkujący (360 p.)
+1 głos
1 odpowiedź 671 wizyt
pytanie zadane 16 października 2021 w Java przez p_wika Nowicjusz (190 p.)
0 głosów
0 odpowiedzi 254 wizyt
pytanie zadane 22 sierpnia 2021 w Java przez Bartek030 Obywatel (1,460 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...