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

Testy jednostkowe

VPS Starter Arubacloud
0 głosów
520 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,690 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,690 p.)

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

komentarz 29 lutego 2020 przez Ehlert Ekspert (212,630 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,630 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,630 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,690 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,690 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ź 357 wizyt
pytanie zadane 4 maja 2021 w Java przez janyczek Początkujący (360 p.)
+1 głos
1 odpowiedź 634 wizyt
pytanie zadane 16 października 2021 w Java przez p_wika Nowicjusz (190 p.)
0 głosów
0 odpowiedzi 244 wizyt
pytanie zadane 22 sierpnia 2021 w Java przez Bartek030 Obywatel (1,460 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...