pytest менен модулдук тестирлөө
Кодуңуздун иштээрин далилдеңиз -- ар бир өзгөртүүдө автоматтык түрдө
pytest бардык тесттериңизди чогултуп, бир секундда иштетип, кайсынысы өтпөй калганын так көрсөтөт -- ошондуктан бүгүн кирген ката эртең байкалбай продакшнга кетпейт.
- автоматтык тесттердин эмне үчүн керек экенин түшүндүрүү,
- тест функцияларын жазуу жана
assertаркылуу күтүлгөндү текшерүү, - тесттер топтомун
pytestбуйругу менен иштетип, отчётун окуу, - фикстуралар аркылуу даярдоону кайра колдонуу,
- каталардын чыгарылганын
pytest.raisesменен текшерүү жанаparametrizeаркылуу көп учурларды камтуу.
1. Тестирлөө эмне үчүн маанилүү
Сиз кодуңузду мурунтан эле текшересиз -- аны иштетип, жыйынтыгын карап. Көйгөй -- кол менен текшерүү масштабга батпайт. Чыныгы программада ондогон функция бар, жана ар бир өзгөртүү өткөн жумада оңдогон нерсени байкалбай бузуп коюшу мүмкүн. Автоматтык тесттер "кел, бир карап көрөйүн" дегенди сиз баскан баскычка айлантат: машина ар бир эрежени бир секунддан аз убакытта кайра текшерет.
Тесттерди аба гимнасты үчүн коргоочу тор катары элестетиңиз. Тор трюктарды сиздин ордуңузга аткарбайт, бирок эр жүрөк өзгөртүүлөрдү киргизүүгө мүмкүндүк берет -- функцияны кайра жазуу, өзгөрмөнү атын алмаштыруу, бир жерди тездетүү -- эгер жыгылсаңыз, тор сизди дароо кармап калат, ал эми колдонуучу катаны продакшнда таппайт.
Жакшы тесттер үч конкреттүү пайда берет:
- Кодду өзгөртүүгө ишеним. Жашыл тесттер сиздин оңдооңуз мурда ишенген бөлүктөрдү бузбаганын билдирет.
- Тирүү документация.
test_withdraw_too_muchдеген тест функция кантип иштеши керек экенин так көрсөтөт. - Тезирээк мүчүлүштүктөрдү оңдоо. Өтпөй калган тест бүт программаны эмес, бир функцияны көрсөтөт.