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

Testy jednostkowe

0 głosów
206 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 (87,400 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,120 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 (87,400 p.)

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

komentarz 29 lutego 2020 przez Ehlert Ekspert (205,650 p.)

Reklamacje do tego panalaugh

komentarz 1 marca 2020 przez obl Maniak (51,120 p.)
Ciekaw jestem jak napiszesz test do metody rysującej coś na kanwasie
komentarz 1 marca 2020 przez Ehlert Ekspert (205,650 p.)
Podaję hasło. Mocki, sinon.
komentarz 1 marca 2020 przez obl Maniak (51,120 p.)
Rozumiem, że piszesz tak jakbym tego nie znał :)
komentarz 1 marca 2020 przez Ehlert Ekspert (205,650 p.)
No to nie wiem z czym masz problem.
komentarz 1 marca 2020 przez obl Maniak (51,120 p.)
komentarz 2 marca 2020 przez kubaapk Nałogowiec (44,490 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,120 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 (87,400 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,120 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 (87,400 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,120 p.)
Ok, obejrzałem filmik rozumiem choć nie podoba mi się to podejście.

Podobne pytania

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

86,514 zapytań

135,267 odpowiedzi

300,569 komentarzy

57,263 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...