Python

Python Unittest -opetusohjelma

Python Unittest -opetusohjelma

Yksikkötestaus on ohjelmistosuunnittelussa käytetty testausmenetelmä minkä tahansa koodin yksittäisille yksiköille. Käyttäjät voivat laittaa yksittäiset testit selvittääkseen lähteen tilan ja kuinka paljon koodi sopii käytettäväksi. Näin käyttäjät voivat testata koodin laatua.

Testaus tehdään, kun kehitysprosessi on valmis. Käyttäjät voivat myös aloittaa testauksen, kun testiskripti on vahvistettava testauksen kriteerien perusteella. Kehittäjien odotetaan kirjoittavan lähdekoodin manuaaliset tyypit. Yleensä yksikkötestauskoodien kirjoittaminen manuaalisesti on kiireinen tehtävä, mutta Pythonissa se tehdään sisäänrakennetulla funktiolla nimeltä unittest.

Yksikkötesti

Testaus Pythonissa tapahtuu unittest-kehyksellä. Yksikkötestaus tekee koodista turvallisen ja helppokäyttöisen myös tulevaisuudessa. Käyttäjät eivät yleensä pysty ennustamaan näitä tapauksia, mutta voivat helposti puuttua niihin. Unittest voi olla joko koko moduuli, tietty toiminto ja koko käyttöliittymä (luokka / moduuli).

Kuinka kirjoittaa yksikötestit koodillesi?

Kun kirjoitat koodisi yksikötestit, aloita aina pienimmällä testattavalla yksiköllä koko koodistasi ja siirry sitten muihin yksiköihin. Tällä tavalla tarkistat, kuinka pienin valittu yksikkö toimii koko yksikön testin rakentamiseksi.

Pythonin yksikkötestauskehys muodostettiin ottamalla huomioon javan Junit. Siinä on samat samat ominaisuudet kuin yksikötestaus tehdään muilla erityyppisillä kielillä. Yksikkötestauksen kehys Pythonissa auttaa automatisointitestauksessa, asetusten jakamisessa, monien testien yhdistämisessä yhdeksi suureksi joukoksi ja itsenäisissä testeissä

Esimerkkejä:

Nyt esimerkissä tarkistamme koodin selvittääksesi summan Python-koodissa käyttämällä sum () -funktiota. Tähän summaukseen on vastattava 12, mikä on oikein.

>>> väitesumma ([2, 4, 6]) == 12, "Pitäisi olla yhtä suuri kuin 12"

Toisaalta, jos yritämme kirjoittaa väärän lähtöarvon, jonka summa () on väärä, tulokset epäonnistuvat. Se palauttaa AssertionError-arvon. Meidän ilmoittama lähtö on väärä eli 12, ja todellisen lähdön on oltava 6, joten se palautti tämän virheen.

>>> väitesumma ([2, 2, 2]) == 12, "Pitäisi olla yhtä suuri kuin 12"

Nyt, sen sijaan että testaisimme REPL: ää, laitamme uuden Python-tiedoston ja nimeämme sen test_sum.py

>> def testValue_sum ():
vakuutussumma ([2, 4, 6]) == 12, "Pitäisi olla yhtä suuri kuin 12"
jos __nimi__ == "__main__":
testValue_sum ()
tulosta ("Kaikki on välitetty oikein")

Testitapauksen kirjoittamisen jälkeen pääset hakemistoon, jolla on test_sum.py-tiedosto ja kirjoita sitten:

$ python test_sum.py

Tuotos:

Lähtöarvo, kun se on samanlainen kuin näytetty, hyväksyy oikean arvon.

Luodaan uusi tiedosto tiedostolle .py testata summa. Koodissa näkyvä esimerkki, jota voidaan käyttää esimerkkinä kopioimalla:

def testValue_sum ():
vakuutussumma ([2, 4, 6]) == 12, "Pitäisi olla yhtä suuri kuin 12"
def testValue_sum_tuple ():
vakuutussumma ((1, 1, 1)) == 6, "Pitäisi olla yhtä suuri kuin 6"
jos __nimi__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
tulosta ("Kaikki on välitetty oikein")

Tällä kertaa nimämme tiedoston uudelleen test_sum.py 

Ensimmäinen koodilohko on oikea, kun taas toinen koodilohko on väärä ja siinä on virhe, joten lähtömme palauttaa saman.

Palataan nyt projektin hakemistoon, johon tallennimme .py-tiedosto, ja testaa tiedosto seuraavalla komennolla:

$ python test_sum.py

Tuotos:

Tällä kertaa, koska syötekoodissa oli virhe, sen odotetaan palauttavan Assertion-virheen vastauksena.

Esimerkki unittestin käytöstä:

Yksilöimättömät vaatimukset ovat, että käyttäjät voivat laittaa testinsä luokkiin erilaisina menetelminä, käyttäjät voivat käyttää joukkoa väitemenetelmiä ja TestCase-luokkaa voidaan käyttää väittämälomakkeen sijasta.

Käyttäjät voivat muuntaa edellisellä puoliskolla käsitellyn esimerkin yhtenäisimmäksi testitapaukseksi.

Tuo ensin yksikkökirjasto. Seuraavaksi sinun on luotava TestSum eri luokista.

Luo uusi tiedosto alla käsitellylle koodille:

tuonti unittest
luokan TestSum (unittest.Testitapaus):
def testValue_sum (itse):
itse.assertEqual (summa ([2, 4, 6]), 12, "Pitäisi olla yhtä suuri kuin 12")
def testValue_sum_tuple (itse):
itse.assertEqual (summa ((1, 1, 1)), 6, "Pitäisi olla yhtä suuri kuin 6")
jos __nimi__ == '__main__':
yksikkötesti.main ()

Kun olet suorittanut tämän komennon, tuloksessa on piste. Tämä tarkoittaa menestystä ja F tarkoittaa epäonnistumista.

Joten meillä on menestys ja toinen on epäonnistuminen.

Tuotos:

Ensimmäisen testin kirjoittaminen:

Luo uusi projektikansio ja luo sitten uusi kansio, kutsumme sitä sum_file. Luo sen sisällä tiedosto ja nimeä se __init__.py.  Tee projektikansio tältä:

projekti /

└── summa_tiedosto /
└── __init__.py

Sitten sinun on avattava my_sum / __ init__.py ja luo uusi funktion summa (). Se on iterable (luettelo, dupleksi tai joukko) lisätä useita arvoja:

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

Seuraavaksi sinun on luotava testata tiedosto. Aloita kirjoittamalla testit ja luo testitiedosto nimeltä testFile.py. Tuo tiedosto ja testaa se asettamalla tiedosto testFile.py paketin kansion yläpuolella. Seuraava on hakemistosi yleinen ilme:

projekti /

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

Kuten aiemmin on testattu koodin testaamiseksi, voit käyttää seuraavaa komentoa pääteikkunassa / komentorivillä:

$ python -m unittest -testi

Johtopäätös

Artikkelissa käsitellään yksikkötestauksen prosessia Pythonissa. Testaus on yksi ohjelmistotuotannon hyödyllinen ominaisuus, joka pystyy jakamaan koodit pienempiin paloihin ja kokeilemaan niitä sitten yksi kerrallaan. Käyttäjät voivat myös koota koko testinäytteet / yksikkökoodit yhdeksi suureksi kokoelmaksi. Unittest on yksi toiminto, jota Pythonissa käytetään testauksen helpottamiseen.

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...