Cykl: Testowanie jednostkowe w Pythonie: Jak pisać szybkie i skuteczne testy z pytest · Część 2/7

Testowanie jednostkowe w Pythonie - wprowadzenie do unittest

Kacper Sieradziński
Kacper Sieradziński14 kwietnia 2025 · 2 min czytania
Streszczenie
  • Znaczenie Testowania Jednostkowego
  • Moduł w Pythonie
  • Pisanie Testów za pomocą
  • Podsumowanie
Testowanie jednostkowe w Pythonie - wprowadzenie do unittest

Czy kiedykolwiek zastanawiałeś się, jak zapewnić, że każda część Twojego programu działa poprawnie? Odpowiedzią może być testowanie jednostkowe. W tym artykule wyjaśnimy, dlaczego testowanie jednostkowe jest ważne i jak możemy wykorzystać moduł unittest w Pythonie do pisania skutecznych testów. Dowiesz się również, jak poprawić jakość kodu i zbudować solidne podstawy dla swoich projektów.

Znaczenie Testowania Jednostkowego

Testowanie jednostkowe to proces testowania poszczególnych części oprogramowania, zwanych jednostkami, aby upewnić się, że działają zgodnie z oczekiwaniami. Jego głównym celem jest wczesne wykrywanie błędów w małych częściach kodu. Oto kilka kluczowych korzyści z testowania jednostkowego:

  • Wczesne Wykrywanie Błędów: Umożliwia identyfikację problemów na etapie programowania, zmniejszając koszty naprawy błędów w późniejszych fazach.
  • Łatwiejsze Refaktoryzowanie: Posiadanie testów jednostkowych ułatwia zmianę kodu, ponieważ testy pozwolą zweryfikować, czy nowa wersja kodu działa poprawnie.
  • Poprawa Jakości Kodowania: Zmusza do pisania bardziej modularnego i łatwiejszego do zrozumienia kodu.
  • Dokumentacja: Testy mogą służyć jako dodatkowa dokumentacja, pokazując, jak daną funkcję można wykorzystać.

Moduł unittest w Pythonie

Python oferuje wbudowany moduł unittest, który jest w pełni wyposażonym narzędziem do pisania i uruchamiania testów jednostkowych. Oto główne cechy, które sprawiają, że unittest jest popularnym wyborem:

Kurs · 24 lekcje8h 14m
Kurs

Kurs Python dla początkujących — PyStart

Zacznij programować w Pythonie! Idealne dla osób bez doświadczenia. Praktyczne zadania, projekty i wsparcie społeczności.

  • 24 lekcje wideo + 80 ćwiczeń
  • Realne bazy z e-commerce
  • Społeczność i code-review
499 zł799 zł−38%
Rozpocznij naukę
  • Tworzenie Test Suite'ów: Łatwe organizowanie testów w zestawy, co ułatwia ich uruchamianie i zarządzanie.
  • Assercje: Różne metody assercji do sprawdzania wyników.
  • Automatyczne Wykrywanie Testów: Możliwość automatycznego znajdowania testów w plikach.
  • Integracja z innymi narzędziami: Może być używany z różnymi narzędziami CI/CD do automatyzacji testów.

Pisanie Testów za pomocą unittest

Aby zademonstrować, jak używać modułu unittest, stworzymy przykładową funkcję oraz odpowiadający jej test jednostkowy.

Przykład Funkcji

Nasza przykładowa funkcja obliczy sumę dwóch liczb:

Python
1 2 def suma(a, b): return a + b

Tworzenie Testów za pomocą unittest

Teraz napiszemy test sprawdzający, czy funkcja suma działa prawidłowo:

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import unittest class TestSuma(unittest.TestCase): def test_dodawanie_liczb_dodatnich(self): self.assertEqual(suma(1, 2), 3) def test_dodawanie_liczb_ujemnych(self): self.assertEqual(suma(-1, -2), -3) def test_dodawanie_zer(self): self.assertEqual(suma(0, 0), 0) if __name__ == '__main__': unittest.main()

Wyjaśnienie Kodu

  • Klasa Testowa: Tworzymy klasę, która dziedziczy po unittest.TestCase. Każda metoda w tej klasie, której nazwa zaczyna się od test, jest traktowana jako przypadek testowy.
  • Assercje: Używamy metody assertEqual, aby sprawdzić, czy wynik funkcji suma jest równy oczekiwanemu wynikowi.
  • Główna Funkcja: Uruchamia testy, gdy plik jest bezpośrednio wykonany.

Podsumowanie

Newsletter · co środę

Python co tydzień — newsletter dla programistów

Otrzymuj codzienne ćwiczenia, ciekawostki z ekosystemu Pythona i wskazówki do rozmów rekrutacyjnych.

2 312 czytelników · ⭐ 4,8

Testowanie jednostkowe z użyciem modułu unittest jest kluczowym procesem dla każdego projektu programistycznego, pomagającym w utrzymaniu jakości i niezawodności kodu. Dzięki testom masz pewność, że każda jednostka twojego oprogramowania działa poprawnie, a jednocześnie ułatwiasz sobie życie przy modyfikacjach kodu. Zachęcamy do implementacji testów jednostkowych w każdym projekcie, a także do eksploracji innych metod testowania i narzędzi, aby osiągnąć jeszcze wyższy poziom jakości oprogramowania.

Zapraszamy do dalszego pogłębienia wiedzy na temat jakości oprogramowania:

Część 3 z 7

Testowanie z pytest – prostsze i szybsze testy w Pythonie

druga lekcja cyklu „Testowanie jednostkowe w Pythonie: Jak pisać szybkie i skuteczne testy z pytest"

Czytaj kolejny →