Czym jest testowanie jednostkowe w Pythonie i jak jest realizowane?

Testowanie jednostkowe to kluczowy element procesu deweloperskiego, który pozwala na weryfikację, czy poszczególne części kodu (jednostki) działają zgodnie z oczekiwaniami. W Pythonie testy jednostkowe można realizować za pomocą modułu unittest, który oferuje szerokie możliwości tworzenia i zarządzania testami.

Przykład kodu z wyjaśnieniami

Załóżmy, że mamy prostą funkcję do testowania, która sumuje dwie liczby. Pokażemy, jak napisać test jednostkowy dla tej funkcji, korzystając z modułu unittest.

# definicja funkcji, którą będziemy testować
def add_numbers(a, b):
    """Funkcja sumująca dwie liczby."""
    return a + b

# import modułu unittest
import unittest

# tworzenie klasy testowej, dziedziczącej po unittest.TestCase
class TestAddNumbers(unittest.TestCase):
    # metoda testowa sprawdzająca poprawność funkcji add_numbers
    def test_addition(self):
        # sprawdzenie, czy wynik jest zgodny z oczekiwaniami
        self.assertEqual(add_numbers(2, 3), 5)
        self.assertEqual(add_numbers(-1, 1), 0)
        self.assertEqual(add_numbers(-1, -1), -2)

# warunek sprawdzający, czy skrypt jest uruchamiany bezpośrednio
if __name__ == '__main__':
    # uruchomienie testów
    unittest.main()

Wyjaśnienie

  • Definicja funkcji do testowania: Na początku definiujemy prostą funkcję add_numbers, która przyjmuje dwa argumenty i zwraca ich sumę.
  • Import modułu unittest: Aby przeprowadzić testowanie jednostkowe, importujemy wbudowany moduł unittest.
  • Tworzenie klasy testowej: Następnie tworzymy klasę TestAddNumbers, która dziedziczy po unittest.TestCase. Jest to standardowy sposób tworzenia testów jednostkowych w Pythonie.
  • Metoda testowa: W klasie testowej definiujemy metody, które faktycznie przeprowadzą testy. Metoda test_addition sprawdza, czy funkcja add_numbers zwraca oczekiwane wartości dla różnych zestawów danych wejściowych.
  • Uruchomienie testów: Na końcu, jeśli skrypt jest uruchamiany bezpośrednio (a nie importowany jako moduł), wywoływana jest funkcja unittest.main(), która uruchamia wszystkie testy zdefiniowane w klasie.

Podsumowanie

Testowanie jednostkowe w Pythonie, realizowane za pomocą modułu unittest, jest potężnym narzędziem, które pozwala na systematyczne weryfikowanie poprawności działania poszczególnych części programu. Umożliwia ono szybkie wykrywanie błędów i zapewnia większą pewność, że wprowadzane zmiany nie wpłyną negatywnie na istniejącą funkcjonalność. Regularne pisanie testów jednostkowych jest zatem najlepszą praktyką, którą warto włączyć do swojego procesu deweloperskiego.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top