Django Academy · Lekcja

Klient testowy i fixtures

Symulowanie żądań i przygotowywanie danych testowych

Lekcja 4 z 413 kroki

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.json

Wczytywanie 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. 🎉

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 „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

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