09 Testing + Debugging

image.png Դսեղ, լուսանկարի հղումը, Հեղինակ՝ Ռոզի

Open In Colab (ToDo)

If debugging is the process of removing bugs. Then programming must be the process of putting them in.

Edsger Dijkstra

📌 Նկարագիր

📚 Ամբողջական նյութը

📺 Տեսանյութեր

Testing

Եթե ուզում ենք կարողանալ մեեեծ պրոեկտների վրա աշխատել, կամ թեկուզ փոքր պրոեկտներում չկորենք կամ պանիկայի մատնվենք երբ նոր մարդիկ սկսեն կոդի վրա աշխատել, շատ կարևոր ա որ ունենանք ամուր ենթակառուցված որը չի թողի կոդում սխալները մուղամով իրանց չար գործը անեն։ Կոդ գրելիս պետք ա մտածենք թե ինչ մուտքերի դեպքում ինչ ելք պետք ա տա, երբ պետք ա էռոռ բարձացնի և այլն, և այլն։ Եթե էդ ամենինչը ֆիքսվի կարող ենք հարմար ստուգել արդյոք էդ մեր դրած պայմանները բավարավում են թե չէ։ Դասին սովորում ենք հենց դա կազմակերպել՝ PyTest գրադարանով (մի քանի րոպե էլ unittest-ին ենք անդրադառնում, 23 թվից ավելի մանրամասն վիդեո կա)։ Սովորում ենք ոնց՝

  1. Սարքել թեստեր
  2. Parametrize: Պարամետրացնել, միանգամից լիքը input-output զույգեր փորձարկելու համար
  3. Fixture: Ոնց նշել ինչ կոդ պետք ա աշխատացվի թեստի աշխատելուց առաջ ու հետո
  4. Mocking: Որոշ ֆունկցիաներ կանցելը փոխարեն ձևացնել որ իրենց ենք օգտագործում որ երկար չսպասենք կամ էլ ուրիշ կոդի սխալի պատճառով մեր թեստը ձախողի
  5. Coverage: Ստուգել թե կոդի որ տոկոսն ա մեր աչքից պլստացել ու առանց թեստի մնացել
  6. CLI Argument-ներով ոնց ընդգծել կոնկրետ ինչ թեստեր/ոնց աշխատացվեն
  7. Ոնց VS Code-ով աշխատացնել թեստերը
  8. Ինչ տեսակներ կան testing-ի (end-to-end, integration, unit test)

Debugging

Վերջում էլ մի քանի րոպեով անդրադառնում ենք VS Code-ի debugger-ից օգվելուց, ու ընդհանուր debugging-ի տեսակներին (ռեզինե բադ, ․․․)։ print-եր շարելը լավ բան ա իհարկե, բայց breakpoint-երին ծանոթանալը կարա հետագայում շատ ժամանակ խնայի։

📚 Նյութը

Testing

Pytest

uv pip install pytest

Դասի կոդերը

  1. Folder-ի հղումը
  2. calculator.py
  3. test_calculator.py
  4. elections.py
  5. test_elections.py

Նյութեր

Unittest

📺 2023 թվականից վիդեո

Նյութեր

Debugging

Լավ 7 րոպեանոց վիդեո

image.png

image.png

🎲 27 (09)

Flag Counter