Ühik-Testid on arendajatele võimas tööriist, et tagada oma koodi kvaliteet. Need võimaldavad sul funktsioone isoleeritult testida ja veenduda, et need toimivad soovitud viisil. Selles juhendis näitan ma, kuidas kirjutada oma esimest ühi-testi Pythonis. Sa õpid mitte ainult ühi-testimise põhitõdesid, vaid ka, kuidas oma teste tõhusalt struktureerida.

Olulisemad märkused

  • Ühi-testid aitavad varakult vigu tuvastada ja tagada, et teie funktsioonid töötavad soovitud moel.
  • Python raamatukogu unittest pakub lihtsat viisi testide rakendamiseks.
  • Tõhusad testid hõlmavad nii positiivseid kui ka negatiivseid stsenaariume ja kontrollivad tagastatavate väärtuste andmetüüpe.

Samm-sammult juhised

Samm 1: Valmistage ette oma projekt

Esiteks vajate Pythonifaili, kuhu olete määranud oma funktsiooni. Meie näites nimetame faili preisberechnung.py. Siin defineerite funktsiooni get_verkaufspreis, mis võtab sisseostuhinna ja lisab marginaali.

Pythoni üheuse testimise alused: Sinu sissejuhatus

Samm 2: Looge fail oma ühi-testide jaoks

Seejärel looge uus fail, mis sisaldab neid teste selle funktsiooni jaoks. Nimetame selle faili nimeks preisberechnung_test.py. Siin töötate unittest-mooduliga.

Raamistiku kasutamiseks impordige see teie faili alguses:

import unittest
from preisberechnung import get_verkaufspreis
Pythoni üksuse testi alused: Sinu sissejuhatus

Samm 3: Määrake testiklass

Testiklass peaks pärima unittest.TestCase. See võimaldab sul struktureeritult organiseerida kõiki teste. Nimeta klass PreisberechnungTest'iks, et selgitada, mida testitakse.

Pythoni Unit-Testi alused: Sinu sissejuhatus

Samm 4: Kirjutage oma testid

Nüüd on aeg kirjutada tegelikud testid. Alustage testiga, mis kontrollib, kas get_verkaufspreis'i tagastus on ettenähtud tüübiga (float):

class PreisberechnungTest(unittest.TestCase): def test_preis_ist_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Pythoni Unit-Testi alused: Sinu sissejuhatus

Samm 5: Testige kehtetut sisendit

Oleks sama oluline testida kehtetut sisendit. Lisage test, mis kontrollib, kas funktsioon tekitab kehtetute sisendite, näiteks None või Stringi sisestamisel, erandi:

def test_invalid_input(self): with self.assertRaises(TypeError): get_verkaufspreis("invalid")
Python Unit-Test põhialused: Sissejuhatus

Samm 6: Testide käitamine

Oma testide käitamiseks võid teha seda kas terminaalis või otse oma IDE-s. Kui kasutad terminali, tee järgmist:

python -m unittest preisberechnung_test.py

Oma IDE-s, nagu PyCharm, saad kasutada Run-konfiguratsiooni testide läbiviimiseks.

Pythoni Unit-Testi alused: Sinu sissejuhatus

Samm 7: Tulemuste kontrollimine

Kui jooksutad testid edukalt, saad väljundi, mis näitab, kas kõik testid on läbitud. Roheline tulemus tähistab, et su kood töötab nagu ette nähtud.

Samm 8: Testide laiendamine

Lisaks põhilistele testidele võid lisada ka teisi asjakohaseid stsenaariume, et suurendada koodi turvalisust. Pea meeles testida nii positiivseid kui ka negatiivseid juhtumeid, et veenduda, et su loogika töötab kõigis olukordades.

Pythoni unit-testide alused: Sinu sissejuhatus

Kokkuvõte - Esimene Ühi-test Pythonis: Põhitõed ja rakendamine

Ühi-testide kirjutamine on oluline oskus, mis aitab sul muuta oma koodi usaldusväärseks. Selles juhendis oled õppinud, kuidas kirjutada oma esimest ühi-testi Pythonis, alates funktsiooni määratlemisest kuni tulemuste täitmise ja kontrollimiseni. Põhjalikud testid parandavad sinu koodi hooldatavust ja aitavad varajases staadiumis probleeme tuvastada.

Korduma kippuvad küsimused

Kuidas luua ühi-test Pythonis?Ühi-testi loomiseks Pythonis loo testiklass, mis pärib unittest.TestCase'ilt, ja kirjuta testid selle klassi meetoditena.

Miks peaksin kirjutama ühi-teste?Ühi-testid aitavad varakult vigu tuvastada ja tagavad, et sinu funktsioonid töötavad soovitud viisil.

Kuidas käivitada ühi-teste?Sa saad käitada ühi-teste terminali kaudu kasutades python -m unittest [failinimi] või otse oma IDE-s.

Millised on head praktikad ühi-testide jaoks?Hea praktika hõlmab nii positiivseid kui ka negatiivseid teststsenaariume ja andmetüüpide kontrollimist. Samuti on oluline testi käitamise regulaarsus, et koheselt kontrollida koodi muudatusi.