Python

Python Unittest Tutorial

Python Unittest Tutorial

Enhetstesting er en testmetode som brukes i programvareteknikk for individuelle enheter av hvilken som helst kode. Brukere kan sette de individuelle testene for å bestemme kildens status og hvor mye koden er egnet til å brukes. På denne måten kan brukere teste kodekvaliteten.

Testing gjøres når utviklingsprosessen er fullført. Brukere kan også begynne å teste når testskriptet skal verifiseres basert på kriteriene for testingen. Det forventes at utviklere skriver de manuelle typene av kildekoden. Generelt er manuell skriving av enhetstestkoder en hektisk oppgave, men i Python gjøres det ved hjelp av en innebygd funksjon kalt unittest.

Unittest

Testingen i Python utføres av unittest rammeverk. Enhetstesting gjør koden sikker og enkel å bruke også i fremtiden. Brukere kan vanligvis ikke forutsi disse tilfellene, men kan enkelt adressere dem. Unittest kan enten være hele modulen, en bestemt funksjon og et helt grensesnitt (klasse / modul).

Hvordan skrive enhetstester for koden din?

For å skrive enhetstestene for koden din, begynn alltid med den minste enheten som kan testes fra hele koden din, og fortsett deretter videre til andre enheter. På denne måten vil du sjekke hvordan den minste valgte enheten samhandler for å bygge en hel enhetstest.

Enhetstestingsrammeverket til Python ble dannet ved å ta hensyn til Java's Junit. Den har de samme funksjonene som at enhetstesting gjøres på andre forskjellige språk. Rammeverket for enhetstesting i Python hjelper til med automatiseringstesting, sette opp deling, aggregering av mange tester i ett stort sett og uavhengige tester

Eksempler:

Nå, i eksemplet, sjekker vi koden for å finne ut summen i Python-kode ved hjelp av funksjonen sum (). Svaret på denne summeringen må være 12, noe som er riktig.

>>> påstå sum ([2, 4, 6]) == 12, "Bør være lik 12"

På den annen side, hvis vi prøver å skrive en feil utgangsverdi, som summen () er feil, vil resultatene mislykkes. Det vil returnere en påstandfeil. Produksjonen som er oppgitt av oss er feil, det vil si 12, og den faktiske utgangen må være 6, derfor returnerte denne feilen.

>>> påstå sum ([2, 2, 2]) == 12, "Bør være lik 12"

Nå, i stedet for å teste på REPL, vil vi legge inn en ny Python-fil og gi den navnet test_sum.py

>> def testValue_sum ():
påstå sum ([2, 4, 6]) == 12, "Bør være lik 12"
hvis __name__ == "__main__":
testValue_sum ()
skriv ut ("Alt har blitt sendt riktig")

Etter å ha skrevet testsaken kan du få tilgang til katalogen som har test_sum.py-fil, og skriv deretter:

$ python test_sum.py

Produksjon:

Utgangsverdien, når den er lik den som vises, vil godkjenne riktig verdi.

La oss lage en annen fil for .py for å teste summen. Eksemplet som vises i koden og kan brukes som et eksempel ved å kopiere:

def testValue_sum ():
påstå sum ([2, 4, 6]) == 12, "Bør være lik 12"
def testValue_sum_tuple ():
påstå sum ((1, 1, 1)) == 6, "Bør være lik 6"
hvis __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
utskrift ("Alt har blitt sendt riktig")

Denne gangen vil vi igjen gi filen navnet test_sum.py 

Første kodeblokk er riktig, mens den andre kodeblokken er feil og har en feil, så utgangen vil returnere den samme.

Nå vil vi gå tilbake til katalogen til prosjektet, der vi lagret .py-fil, og test deretter filen med følgende kommando:

$ python test_sum.py

Produksjon:

Denne gangen siden inngangskoden hadde en feil, forventes det å returnere påstandsfeilen som svar.

Eksempel på bruk av unittest:

Unittest krav er at brukere kan sette sine tester i klasser som forskjellige metoder, brukere kan bruke en rekke påstandsmetoder, og TestCase-klassen kan brukes i stedet for påstanden.

Brukere kan konvertere eksemplet som ble diskutert i forrige halvdel til en unittest testsak.

Først må du importere enhetsbiblioteket. Deretter må du opprette en TestSum fra forskjellige klasser.

Lag en ny fil for koden som er diskutert nedenfor:

importer unittest
klasse TestSum (unittest.Testforsøk):
def testValue_sum (selv):
selv-.assertEqual (sum ([2, 4, 6]), 12, "Bør være lik 12")
def testValue_sum_tuple (selv):
selv-.assertEqual (sum ((1, 1, 1)), 6, "Bør være lik 6")
hvis __name__ == '__main__':
unittest.hoved()

Når du har utført denne kommandoen, har utgangen en prikk. Dette betyr suksess og et F betyr en fiasko.

Så vi har suksess, og en annen er en fiasko.

Produksjon:

Skrive den første testen:

Opprett en ny prosjektmappe, og opprett deretter en ny mappe, vi vil kalle den sum_file. Inne i den, opprett en fil og gi den navnet, __init__.py.  Lag prosjektmappen slik:

prosjekt/

└── sum_file /
└── __init__.py

Da må du åpne my_sum / __ init__.py og opprett en ny funksjonssum (). Det vil være iterabelt (en liste, tupel eller sett) for å legge til mange verdier:

def sum (arg):
total_ValueCalculated = 0
for val i arg:
total_ValueCalculated + = val
return total_ValueCalculated

Deretter må du opprette en test fil. Start med å skrive tester, og lag en testfil som heter testFile.py. For å importere applikasjonen, og den må testes, plasserer du filen testFile.py over mappen til pakken. Følgende vil være det generelle utseendet på katalogen din:

prosjekt/

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

Som diskutert tidligere for å teste koden, kan du bruke følgende kommando i terminalvinduet / kommandolinjen:

$ python -m unittest test

Konklusjon

Artikkelen diskuterer prosessen med enhetstesting i Python. Testing er en av de nyttige funksjonene i programvareutvikling som er i stand til å dele kodene i mindre biter, og deretter prøve dem ut en etter en. Brukere kan også samle hele testprøvene / enhetskodene i en stor samling. Unittest er en funksjon som brukes i Python for å gjøre en enkel bruk av testing.

Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...
Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...