Klient testowy i fixtures
Symulowanie żądań i przygotowywanie danych testowych
Klient testowy i fixtures to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 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.
Testowanie całych widoków
Testy modeli są świetne, ale warto również testować całe strony. test client pozwala symulować rzeczywiste żądanie przeglądarki wewnątrz testu. 🌐
Klient jest gotowy
Każdy TestCase bezpłatnie udostępnia obiekt self.client. Nie wymaga on konfiguracji — jest gotowy i czeka w każdym teście.
Wysyłanie żądania GET
Należy wywołać self.client.get z adresem URL, aby pobrać stronę tak jak zrobiłaby to przeglądarka, a następnie sprawdzić otrzymaną odpowiedź.
response = self.client.get('/articles/')Sprawdzanie kodu statusu
Odpowiedź zawiera status_code. Należy sprawdzić, czy jest równy 200, aby potwierdzić pomyślne załadowanie strony.
self.assertEqual(response.status_code, 200)Prostsze sprawdzanie statusu
Django oferuje skrót. Należy użyć assertContains, aby potwierdzić zarówno status 200, jak i obecność oczekiwanego tekstu na stronie.
self.assertContains(response, 'Latest Articles')Wysyłanie danych formularza
Można zasymulować wysłanie formularza za pomocą self.client.post, przekazując słownik pól, które wypełniłby użytkownik.
self.client.post('/add/', {'title': 'Hi'})Testowanie według nazwy ścieżki
Zakodowane na stałe adresy URL łatwo się psują. Należy użyć reverse, aby odszukać adres URL na podstawie nazwy jego ścieżki.
url = reverse('article-list')
response = self.client.get(url)Czym są fixtures?
fixture to plik zawierający wcześniej przygotowane rekordy. Zasila testową bazę danych, dzięki czemu każdy test rozpoczyna się od tych samych, znanych danych.
Tworzenie pliku fixture
Istniejące rekordy można wyeksportować za pomocą dumpdata. Django zapisze je w formacie JSON, który można później ponownie wczytać jako fixture.
python manage.py dumpdata blog > data.jsonWczytywanie fixture w testach
Pliki fixture należy wymienić w atrybucie fixtures, a Django automatycznie wczyta je przed uruchomieniem każdego testu.
class BlogTests(TestCase):
fixtures = ['data.json']Fixtures a setUp
Należy wybrać fixtures, gdy potrzebny jest stały zestaw danych szybko wczytywany do testów, a setUp — gdy każdy test wymaga niewielkich, dopasowanych obiektów.
Szybkie sprawdzenie
Chcą Państwo potwierdzić, że strona się wczytała i wyświetla nagłówek.
Podsumowanie
Za pomocą test client sterowali Państwo widokami, sprawdzali status i zawartość, wysyłali dane formularzy oraz zasilali dane za pomocą fixtures i dumpdata. 🎉
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 „Klient testowy i fixtures” jest bezpłatna?
Tak — pełny tekst „Klient testowy i fixtures” 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 „Klient testowy i fixtures”?
Symulowanie żądań i przygotowywanie danych testowych Ć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 4 z 4.
Ile czasu zajmuje lekcja „Klient testowy i fixtures”?
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