Unit-Tests yra galingas įrankis kūrėjams užtikrinti savo kodo kokybę. Jie leidžia tau izoliuotai testuoti funkcijas ir užtikrinti, kad jos veikia kaip tikėtasi. Šiame vadove parodysiu, kaip tu gali parašyti savo pirmąjį Unit-Testą Python kalba. Tu sužinosi ne tik pagrindus apie Unit-Testus, bet ir tai, kaip efektyviai kurti savo testus.

Svarbiausi įžvalgos

  • Unit-Testai padeda anksti atpažinti klaidas ir užtikrina, kad tavo funkcijos veikia kaip tikėtasi.
  • Python biblioteka unittest siūlo paprastą būdą implementuoti testus.
  • Efektyvūs testai apima tiek teigiamus, tiek neigiamus scenarijus ir tikrina grįžtamojo tipo duomenis.

Žingsnis po žingsnio vadovas

Žingsnis 1: Paruošk savo projektą

Pirmiausia tau reikia Python failo, kuriame yra apibrėžta tavo funkcija. Mūsų pavyzdyje mes pavadinsime failą preisberechnung.py. Čia tu apibrėši funkciją get_verkaufspreis, kuri priima pirkimo kainą ir prideda maržą.

Python Unit-Test pagrindai: Tavo įžanga

Žingsnis 2: Sukurk failą savo Unit-Testams

Tada sukurk naują failą, kuris turi apimti testus šiai funkcijai. Pavadinkime šį failą preisberechnung_test.py. Čia tu dirbsi su unittest moduliu.

Norint naudoti sistemą, tu turi ją importuoti failo pradžioje:

import unittest
from preisberechnung import get_verkaufspreis
Python Unit-Test pagrindai: Tavo įžanga

Žingsnis 3: Apibrėžk testų klasę

Testų klasė turėtų paveldėti unittest.TestCase. Tai leidžia tau organizuoti visus testus struktūrizuota forma. Pavadink klasę PreisberechnungTest, kad būtų aišku, ką testuoji.

Python Unit-Test pagrindai: Tavo pradžia

Žingsnis 4: Parašyk savo testus

Dabar atėjo laikas parašyti tikrus testus. Pradėk nuo testo, kuris tikrina, ar get_verkaufspreis grąžinama vertė yra laukiamo tipo (float):

class PreisberechnungTest(unittest.TestCase): def test_preis_ist_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Python Unit-Test pagrindai: Tavo įžanga

Žingsnis 5: Testuok netinkamus įvedimus

Taip pat svarbu išbandyti netinkamus įvedimus. Pridėk testą, kuris patikrina, ar funkcija su netinkamais įvedimais, kaip None arba string, kelia išimtį:

def test_invalid_input(self): with self.assertRaises(TypeError): get_verkaufspreis("invalid")
Python Unit-Test pagrindai: Tavo įžanga

Žingsnis 6: Vykdyk testus

Norėdamas vykdyti savo testus, gali tai padaryti per terminalą arba tiesiogiai savo IDE. Jei naudoji terminalą, vykdyk šią komandą:

python -m unittest preisberechnung_test.py

Savo IDE, tokiame kaip PyCharm, gali naudoti „Run“ konfigūraciją testams vykdyti.

Python Unit-Test pagrindai: Tavo įžanga

Žingsnis 7: Patikrink rezultatus

Jei tavo testai sėkmingai praeina, gausi išvestį, nurodančią, ar visi testai buvo laikomi. Žalias rezultatas reiškia, kad tavo kodas veikia kaip numatyta.

Žingsnis 8: Išplėsk testus

Be pagrindinių testų gali pridėti dar kelis aktualius scenarijus, kad padidintum kodo saugumą. Nepamiršk patikrinti tiek teigiamų, tiek neigiamų atvejų, kad užtikrintum, jog tavo logika veikia visose situacijose.

Python Unit-Test pagrindai: Tavo įžanga

Santrauka - Pirmas Unit-Testas su Python: Pagrindai ir įgyvendinimas

Unit-Testų rašymas yra svarbi įgūdžių sritis, kurios tau reikia, norint padaryti savo kodą patikimą. Šiame vadove tu sužinojai, kaip parašyti pirmąjį Unit-Testą Python kalba, nuo funkcijos apibrėžimo iki vykdymo ir rezultatų patikrinimo. Per išsamų testavimą žymiai pagerėja tavo kodo priežiūra ir problemos atpažįstamos anksti.

Dažnai užduodami klausimai

Kaip sukurti Unit-Testą Python kalba?Norint sukurti Unit-Testą Python kalba, sukurkite testų klasę, kuri paveldi unittest.TestCase, ir rašykite testus kaip šios klasės metodus.

Kodėl turėčiau rašyti Unit-Testus?Unit-Testai padeda anksti pastebėti klaidas ir užtikrinti, kad tavo funkcijos veikia kaip numatyta.

Kaip vykdyti Unit-Testus?Unit-Testus gali vykdyti per terminalą su python -m unittest [failo_pavadinimas] arba tiesiogiai savo IDE.

Kokios yra geros praktikos Unit-Testams?Gera praktika apima tiek teigiamus, tiek neigiamus testų scenarijus ir duomenų tipų patikrinimą. Taip pat svarbu reguliariai vykdyti testus, kad būtų galima nedelsiant patikrinti kodų pokyčius.