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:

Python

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:

  1. qoshish(a, b) funksiyasini yozing;
  2. assert qoshish(2, 3) == 5 bilan tekshiring;
  3. ataylab noto’g’ri assert yozing — qanday xato chiqadi?
  4. test_hisob.py faylini yaratib, test_ bilan boshlanuvchi ikkita funksiya yozing;
  5. pytest bilan 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 pip bilan o’rnatiladi.

Keyingi darslarda Python’ning yuqori darajali mavzularini — *args, closure, iterator va boshqalarni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi