Pisanie TestCase i asercji
Automatyczne testowanie modeli i widoków
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 TestCasePierwsza 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 testOdczytywanie 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. 🎉
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
- Klasa Paginator
- Sterowanie stronami w ListView
- Pisanie TestCase i asercji
- Klient testowy i fixtures