Wpis z mikrobloga

Zaczęłam trochę ćwiczyć testy jednostkowe. Napisałam sobie wczoraj grę - te słynne connect four. Dzisiaj zaczęłam klepać do tego testy jednostkowe. Mam prośbę do Mirków z #programowanie i z #java aby rzucili okiem i ewentualnie powiedzieli co robię źle/dobrze. Nie chciało mi się narazie całego projektu wrzucać, tylko jedną klasę Board. Jest to na tyle trywialny i autonomiczny kod, że chyba nikt nie będzie miał problemu z rozczytaniem. Klasa z Testem pod spodem.

klik
  • 33
@miczuu: testy ogólnie to kod, który sprawdza czy inny kod działa zgodnie z oczekiwaniami.

Jednostkowe to takie testy, które sprawdzają pewien wąski zakres kodu - np pojedynczą klasę czy funkcję
@miczuu: generalnie tak. Diabeł tkwi w szczegółach. Robiąc TDD testy stanowią działającą specyfikację - piszesz czego oczekujesz od funkcji. Implementacja to może być oczywiście warunek, pętla, polimorfizm, cokolwiek - co spełni Twój test (specyfikację).
@sasik520:

Nie da się dobrze przetestować tragicznie napisanego kodu.


oh wait, a czy testy nie są po to, żeby sprawdzić i wytknąć co w tym tragicznie napisanym kodzie nie działa i go korygować? Z resztą jeżeli uważasz, że kod powyżej jest źle napisany to pokaż gdzie nie działa. Inna sprawa, że to nie jest gotowy kod na czysto tylko jak sama napisałam:

Dzisiaj zaczęłam klepać do tego testy jednostkowe


Kod był
Gdzie?


@ZasilaczKomputerowy: w kodzie produkcyjnym. WIDTH i HEIGHT i tak eksponujesz za pomocą getterów. A 'być może będzie' to nie jest argument. Być może ten kod będzie uruchamiany w kontekście webowym - dlaczego nie jest odpowiednio opakowany?

Nie ma co myśleć w ten sposób - przyjdzie potrzeba extendowania klasy, wtedy pozmieniasz, co musisz.

Zastanów się też, czy ten konstruktor jest tam naprawdę potrzebny?

A gdzie w testach jest setColumn w try-catch?
@onomatobeka: Co za różnica. Zawsze jak ktoś wrzuca swój kod to trochę tak jakby robił programistyczne hashtag pokażmorde bo to coś prywatnego i osobistego i na tej podstawie można kogoś zjechać. Stąd takie zainteresowanie myślę, a nie tam kolor paska. Z tego co zauważyłam, jak ktoś pokazuje swój kod i prosi o radę to zawsze jest dużo odpowiedzi.
@ZasilaczKomputerowy: przede wszystkim stonuj trochę, bo strasznie opierasz się krytyce. Ludzie wskazują ci błędy, a ty do tego oczekujesz gotowego rozwiązania. Nie na tym polega nauka. Zresztą, fajnie, że zainteresowałaś się testami, zanim ktoś w pracbazie cię do tego przymusił i ślęczał z tobą nad testami, co już przecież napisałem.

Testy mają ogromny wpływ na architekturę kodu produkcyjnego. Istnieją sposoby na radzenie sobie z tzw. 'legacy code', tylko... po co tworzyć
@sasik520:

przede wszystkim stonuj trochę, bo strasznie opierasz się krytyce

Jest zadane pytanie, a ludzie odpowiadają nie na temat. Nie odbieraj polemiki jako atak. Cenię sobie rady, ale jak mam wątpliwości to piszę. Co to jest za uczeń, który nie zadaje pytań i nie polemizuje? Ja sobie też zdaję sprawę z tego, że mam taki temperament a nie inny i czasem ludzie moje wypowiedzi obierają jako ataki. Nie taką mam intencję.