Tema
/
Struktūrinis programavimas GO
Pamoka 13 / 14 Testavimas (go test) ~45 min
📖 Teorija

Namų darbas — testai tavo programoje

TAVO programa: duok jai apsaugos tinklą.

Reikalavimai:

  1. Sukurk <kažkas>_test.go šalia main.go, package main, su import "testing".
  2. Parašyk lentelės testus bent dviem grynosioms funkcijoms savo programoje — toms, kurios priima įėjimą ir grąžina rezultatą (formatuotojas, tikrintojas, mažas skaičiavimas). Praleisk funkcijas, kurios tik skaito įvestį ar spausdina; testuok logiką, ne meniu.
  3. Padenk kraštus, ne tik laimingą kelią: tuščią eilutę, ribinį skaičių, lietuvišką žodį, kur baitai ≠ simboliai.
  4. Paleisk go test -v ir pasiek, kad viskas praeitų. gofmt ir testų failą.

Papildomai (verta kartą padaryti): tyčia sugadink vieną funkciją — pakeisk > į >= arba RuneCountInString atgal į len — paleisk go test ir įklijuok krentančią išvestį. Tada pataisyk ir įklijuok praėjimą. Ta raudona→žalia pora — įrodymas, kad tavo testas tikrai ką nors saugo.

Ką pateikti: _test.go failą + go test -v praėjimo nuorašą ir (iš „Papildomai", jei darei) tą vieną krentantį paleidimą, rodantį, kaip testas pagauna tikrą pakeitimą.

Sąžininga pastaba. Testai — ne ritualas ir ne nemokami: netestuoji visko ir kaip taisyklė nerašai testų prieš kodą. Testuok dalis, kurias lengva subtiliai suklysti ir erzina tikrinti ranka: teksto tvarkymą, ribas, viską, kas liečia baitus vs simbolius. Būtent tai maža CLI dažniausiai suklysta, o dabar mašina prižiūri už tave. Kita pamoka — paskutinė — pažvelgsim po gaubtu į rodykles ir kaip tavo sukurtos dalys dalijasi atmintimi.