Django Academy · Lekcja

Pisanie TestCase i asercji

Automatyczne testowanie modeli i widoków

Lekcja 3 z 413 kroki

Pisanie TestCase i asercji to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Po co pisać testy?

Testy wykrywają błędy, zanim zrobią to użytkownicy. Pozwalają zmieniać kod z pewnością, ponieważ pomyślne wykonanie testów oznacza, że nic nie zostało zepsute. ✅

Poznajemy TestCase

Django udostępnia bazową klasę TestCase. Należy po niej dziedziczyć, a każda metoda zaczynająca się od test_ stanie się automatycznym sprawdzeniem.

from django.test import TestCase

Pierwsza klasa testów

Powiązane sprawdzenia należy grupować w jednej klasie. W tym przypadku podklasa TestCase będzie zawierać wszystkie testy modelu Article.

class ArticleTests(TestCase):
    pass

Świeża baza danych

TestCase uruchamia każdy test we własnej transaction, a następnie ją wycofuje. Testy nigdy nie zanieczyszczają rzeczywistych danych ani siebie nawzajem.

Pisanie metody testowej

Każdą metodę testową należy nazwać z prefiksem test_, aby mechanizm uruchamiający Django mógł ją wykryć i wykonać.

def test_title_is_saved(self):
    ...

Sprawdzanie równości

Klasycznym sprawdzeniem jest assertEqual. Test przechodzi, gdy dwie wartości są zgodne, i wyraźnie kończy się niepowodzeniem, gdy się różnią.

self.assertEqual(article.title, 'Hello')

Sprawdzanie wartości True lub False

W przypadku warunków logicznych należy używać assertTrue i assertFalse. Dzięki nim intencja testu jest całkowicie jasna.

self.assertTrue(article.is_published)

Konfigurowanie współdzielonych danych

Potrzebują Państwo tego samego obiektu w wielu testach? Należy utworzyć go raz w setUp, które Django uruchamia przed każdą metodą testową.

def setUp(self):
    self.a = Article.objects.create(title='Hi')

Testowanie metody modelu

Należy sprawdzić, czy model działa zgodnie z założeniami. Trzeba utworzyć obiekt, wywołać jego metodę, a następnie użyć assert, aby sprawdzić oczekiwany wynik.

self.assertEqual(str(self.a), 'Hi')

Uruchamianie testów

Wszystko rozpoczyna się od polecenia test. Django znajduje pliki testów, uruchamia je i zgłasza testy zakończone powodzeniem oraz niepowodzeniem.

python manage.py test

Odczytywanie wyników

Kropka oznacza pomyślne wykonanie, F oznacza niepowodzenie, a E — błąd. Podsumowanie dokładnie pokazuje, który test się nie powiódł i dlaczego.

Szybkie sprawdzenie

Django musi wiedzieć, które metody są testami.

Podsumowanie

Napisali Państwo klasę TestCase, użyli setUp do współdzielonych danych, sprawdzili wyniki za pomocą assertEqual i assertTrue oraz uruchomili wszystko poleceniem manage.py test. 🎉

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Pisanie TestCase i asercji” jest bezpłatna?

Tak — pełny tekst „Pisanie TestCase i asercji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Pisanie TestCase i asercji”?

Automatyczne testowanie modeli i widoków Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Pisanie TestCase i asercji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Klasa Paginator
  2. Sterowanie stronami w ListView
  3. Pisanie TestCase i asercji
  4. Klient testowy i fixtures
← Powrót do Django Academy