Rozdział 13 · Automatyzacja z funkcjami

Funkcje testowania

Funkcję można testować oddzielnie od całego programu, bez udziału użytkownika i bez uruchamiania całej aplikacji.

Główna praktyczna zaleta funkcji

testiruemaya_funkciya.py
def rectangle_area(w, h):
    return w * h
proverki.py
rectangle_area(2, 3) == 6
rectangle_area(0, 5) == 0
rectangle_area(10, 1) == 10
Nie trzeba wprowadzać użytkowników ani całej aplikacji
Funkcję można przetestować w izolacji — wywołać bezpośrednio z określonymi wartościami i porównać z oczekiwanym wynikiem. O to chodzi testowanie jednostkowe kod.

Stół Testowy

LogujCzekamFaktUkończono?
classify_score(95)„doskonały”„doskonały”
classify_score(60)„dobrze”„dobrze”
classify_score(0)„poprawka”„poprawka”
classify_score(100)granicy z góry?sprawdzone
Przypadki Krawędziowe — z rozdziału 9
Tabela testowa — bezpośrednia kontynuacja testów granicznych warunków z rozdziału 9: sprawdzamy nie tylko „zwykłe” wartości, ale też granice zakresów.

assert jest łatwym testem tego założenia

assert_primer.py
assert rectangle_area(2, 3) == 6
assert rectangle_area(0, 5) == 0
print(„Wszystkie testy przeszły”)
assert_padaet.py
assert rectangle_area(2, 3) == 7
# AssertionError
assert jest narzędziem deweloperskim, nie weryfikującym danych użytkowników
assert sprawdza założenie i podnosi AssertionErrorjeśli jest fałszywy, jest przydatny do samodzielnego testowania podczas rozwoju i debugowania. To NIE jest mechanizm weryfikacji danych użytkownika ani ochrony bezpieczeństwa – stosuje się standardowe warunki (Rozdział 9) do weryfikacji danych otrzymanych od użytkownika, tak jak już zrobiliśmy.

Workflow: przykłady → kontraktów → przegląd wdrożenia →

Wymaganie, że funkcja powinnarobićPrzykładywejście → oczekiwanewyjścieWdrożenienapisać defChallengetestemwartościWeryfikacjato się zbiegło z tymoczekiwania
Ten sposób myślenia — bezpośredni zwiastun kompletnego testowania unit-, które pojawi się w przyszłych rozdziałach
Praktyka: Testowanie funkcji względem tabeli
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →