Python'da testlash asoslari (unittest, pytest)
Kod yozgach, uni tekshirasiz: to’g’ri ishlayaptimi? Buni har safar qo’lda qilish zerikarli va xatoga moyil. Test — kodni avtomatik tekshiradigan kod. Bu darsda testlashning asosi bilan tanishamiz.
Test nima
Test — dasturingizni tekshiradigan alohida kod bo’lagi. U funksiyani ma’lum kirish bilan chaqiradi va natija kutilganidek ekanini tekshiradi. Bir marta yozilgan test — o’zgarish kiritganingizda kod buzilmaganini tez tasdiqlaydi.
assert — eng oddiy tekshiruv
Eng sodda test — assert: agar shart yolg’on bo’lsa, xato beradi:
Agar qoshish noto’g’ri ishlasa, assert shu joyda xato beradi va sizni
ogohlantiradi.
pytest bilan test
Katta loyihalarda maxsus vosita — pytest — ishlatiladi. Test funksiyalari
test_ bilan boshlanadi:
# test_hisob.py
def qoshish(a, b):
return a + b
def test_qoshish():
assert qoshish(2, 3) == 5
assert qoshish(0, 0) == 0
Terminalda pytest deb yozsangiz, u barcha test_ funksiyalarni topib
ishga tushiradi va natijani ko’rsatadi. pytest pip bilan
o’rnatiladi.
Amaliy mashq
Birinchi testingizni yozing:
qoshish(a, b)funksiyasini yozing;assert qoshish(2, 3) == 5bilan tekshiring;- ataylab noto’g’ri
assertyozing — qanday xato chiqadi? test_hisob.pyfaylini yaratib,test_bilan boshlanuvchi ikkita funksiya yozing;pytestbilan ishga tushiring va natijani o’qing.
Funksiyada xato qilib ko’ring — pytest qaysi qatorni ko’rsatadi?
Qisqacha xulosa
- Test — kodni avtomatik tekshiradigan kod.
assert shart— shart yolg’on bo’lsa xato beradi (eng oddiy test).- pytest — testlarni topib ishga tushiradigan vosita; funksiyalar
test_bilan boshlanadi. - Testlar o’zgarishdan keyin kod buzilmaganini tez tasdiqlaydi.
- pytest
pipbilan o’rnatiladi.
Keyingi darslarda Python’ning yuqori darajali mavzularini — *args, closure,
iterator va boshqalarni ko’ramiz.