Python

Pythoni ühtse juhendamise juhend

Pythoni ühtse juhendamise juhend

Ühikute testimine on tarkvaratehnikas kasutatav testimismeetod mis tahes koodi üksikute üksuste jaoks. Kasutajad saavad teha individuaalsed testid, et teha kindlaks allika olek ja kui palju kood kasutamiseks sobib. Nii saavad kasutajad koodi kvaliteeti testida.

Testimine toimub siis, kui arendusprotsess on lõpule jõudnud. Kasutajad saavad testimist alustada ka siis, kui testiskripti testimise kriteeriumide alusel tuleb kontrollida. Arendajatelt oodatakse lähtekoodi käsitsi tüüpide kirjutamist. Üldiselt on üksuste testimiskoodide käsitsi kirjutamine kirglik ülesanne, kuid Pythonis kasutatakse seda sisseehitatud funktsiooni nimega unittest.

Unittest

Testimine Pythonis toimub ühtse raamistiku abil. Üksuse testimine muudab koodi turvaliseks ja hõlpsasti kasutamiseks ka edaspidi. Kasutajad ei oska neid juhtumeid tavaliselt ennustada, kuid saavad nendega hõlpsasti hakkama. Unittest võib olla kas kogu moodul, konkreetne funktsioon ja terve liides (klass / moodul).

Kuidas kirjutada oma koodi ühikutestid?

Oma koodi ühikutestide kirjutamiseks alustage alati väikseima üksusega, mida saab kogu teie koodist testida, seejärel liikuge edasi teiste üksuste juurde. Nii saate kontrollida, kuidas väikseim valitud üksus suhtleb terve üksuse testi loomisega.

Pythoni ühikutestimise raamistik moodustati java Junit arvesse võttes. Sellel on samad funktsioonid, näiteks üksuse testimine toimub teistes erinevates keeltes. Üksuse testimise raamistik Pythonis aitab automatiseerida, seadistada jagamist, paljude testide koondamist ühte suurde komplekti ja sõltumatuid teste

Näited:

Nüüd näites kontrollime koodi Pythoni koodis oleva summa välja selgitamiseks funktsiooni summa () abil. Vastus sellele summeerimisele peab olema 12, mis on õige.

>>> väidetav summa ([2, 4, 6]) == 12, "Peaks olema võrdne 12-ga"

Teisalt, kui proovime kirjutada vale väljundväärtuse, mille summa () on vale, siis tulemused ebaõnnestuvad. See tagastab AssertionError. Meie poolt välja toodud väljund on vale, see on 12 ja tegelik väljund peab olema 6, seega andis see selle vea tagasi.

>>> väidetav summa ([2, 2, 2]) == 12, "Peaks olema võrdne 12-ga"

Nüüd lisame REPL-i testimise asemel uue Pythoni faili ja nimetame selle test_sum.py

>> def testValue_sum ():
kinnita summa ([2, 4, 6]) == 12, "Peaks olema võrdne 12"
kui __nimi__ == "__main__":
testValue_sum ()
print ("Kõik on õigesti edastatud")

Pärast testjuhtumi kirjutamist pääsete juurde kataloogile, millel on test_sum.py fail ja tippige seejärel:

$ pythoni test_sum.py

Väljund:

Kui väljundväärtus sarnaneb kuvatuga, kinnitab see õige väärtuse.

Loogem uus fail faili jaoks .py summa testimiseks. Koodis kuvatav näide, mida saab kasutada näidisena kopeerides:

def testValue_sum ():
kinnita summa ([2, 4, 6]) == 12, "Peaks olema võrdne 12"
def testValue_sum_tuple ():
väidetav summa ((1, 1, 1)) == 6, "Peaks olema võrdne 6-ga"
kui __nimi__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
print ("Kõik on õigesti edastatud")

Seekord nimetame faili uuesti test_sum.py 

Esimene koodiblokk on õige, teine ​​koodiplokk on vale ja sellel on viga, nii et meie väljund tagastab sama.

Nüüd läheme tagasi projekti kataloogi, kuhu me faili salvestasime .py-fail, ja seejärel testige faili järgmise käsuga:

$ pythoni test_sum.py

Väljund:

Seekord, kuna sisendkoodil oli viga, peaks see vastusena tagastama tõendusvea.

Näide unittesti kasutamisest:

Ühtsed nõuded on, et kasutajad saavad oma testid klassidesse panna erinevate meetoditena, kasutajad saavad kasutada kinnitusmeetodite rida ja väite väite asemel saab kasutada klassi TestCase.

Kasutajad saavad eelmises pooles käsitletud näite teisendada ühtseks testjuhtumiks.

Esmalt importige üksuse teek. Järgmisena peate looma TestSumi erinevatest klassidest.

Looge allpool käsitletud koodi jaoks uus fail:

import ühetaoline
klass TestSum (unittest.TestCase):
def testValue_sum (ise):
ise.assertEqual (summa ([2, 4, 6]), 12, "peaks olema võrdne 12")
def testValue_sum_tuple (ise):
ise.assertEqual (summa ((1, 1, 1)), 6, "peaks olema võrdne 6")
kui __nimi__ == '__main__':
üksmeelne.peamine ()

Kui olete selle käsu täitnud, on väljundil punkt. See tähendab edu ja F tähendab ebaõnnestumist.

Nii et meil on edu ja teine ​​on ebaõnnestumine.

Väljund:

Esimese testi kirjutamine:

Looge uus projekti kaust ja seejärel looge uus kaust, nimetame seda sum_file. Selle sees looge fail ja andke sellele nimi __init__.py.  Tehke projekti kaust selline:

projekt /

└── summa_fail /
└── __init__.py

Siis peate avama my_sum / __ init__.py ja loo uus funktsiooni summa (). Paljude väärtuste lisamine on korduv (loend, dupleks või komplekt):

def summa (arg):
total_ValueCalculated = 0
val in arg:
total_ValueCalculated + = val
return total_ValueCalculated

Järgmisena peate looma a test faili. Alustage testide kirjutamisest ja looge testfail nimega testFile.py. Rakenduse importimiseks ja seda tuleb testida, asetage fail testFile.py paki kausta kohal. Teie kataloogi üldilme on järgmine:

projekt /

├── summa_fail /
│ └── __init__.py
|
└── testFile.py

Nagu koodi testimiseks varem räägitud, saate terminaliaknas / käsureal kasutada järgmist käsku:

$ python -m unittest test

Järeldus

Artiklis käsitletakse üksuste testimise protsessi Pythonis. Testimine on tarkvaratehnika üks kasulik funktsioon, mis on võimeline jagama koodid väiksemateks tükkideks ja seejärel neid ükshaaval proovima. Samuti saavad kasutajad kogu testproovid / ühikukoodid koondada ühte suurde kogusse. Unittest on üks Pythonis kasutatav funktsioon testimise hõlpsaks kasutamiseks.

Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...