2011-10-11 21 views
5

Jestem nowy zarówno dla Django, jak i testów jednostkowych, ale od kiedy rozpoczynam projekt po dość długim czasie grania w ramy, postanowiłem dać test jednostkowy.Jak uruchomić TDD w Django?

Pomijając mój entuzjazm, nie mam pojęcia, jak zaplanować proces rozwoju. Zrobiłem małe wyszukiwanie w github dla projektów Django, które używają testów jednostkowych i natknąłem się na this. Widzę, że w aplikacji "tagowanie" są tylko testy i wygląda dobrze, ale nie mam pojęcia, jak je zlikwidować. Dlaczego plik "models.py" w aplikacjach/tagging/tests /? Klasy modeli nie mają nic wspólnego z tymi w aplikacjach/tagging/models.py ...

Jakieś pomysły, jak to obliczyć lub znaleźć dobry przykład, jak wdrożyć testowanie jednostek w środowisku django?

Czytałem także w dokumentach, że Django wprowadził unittest2 w wersji 1.3, więc "Django 1.1 Testowanie i debugowanie - przez Karen M. Tracey" byłoby pomocne w czytaniu, czy też może to spowodować pewne zamieszanie?

W każdym razie, doceniam wszelkie dane wejściowe z góry.

Odpowiedz

5

Jeśli mogę podłączyć mój samouczek, omówi to, jak wykonać TDD w Django od podstaw. Obejmuję te same kroki co "oficjalny" samouczek Django, z wyjątkiem używania TDD na każdym kroku. Obejmuje to pełne testowanie automatyzacji przeglądarki za pomocą Selenium (co pozwala na testowanie zachowania z punktu widzenia użytkownika końcowego, w tym możliwość włączenia javascript później). Ja również pokazać, jak korzystać z Django TestClient dla testów jednostkowych ...

http://tdd-django-tutorial.com

+0

Myślę, że natknąłem się na ten projekt (aplikacja ankiety django + wszystkie testy) w github sme czas temu. Nie wiedziałem, że jest też krok po kroku ... Dzięki, stary. Minęło trochę czasu, ale przyjrzę się temu. –

+0

Zobacz, jak sobie radzisz! Próbowałem to napisać, więc nie zakłada on żadnej wiedzy i naprawdę idzie krok po kroku ... Komentarze bardzo doceniane! – hwjp

+0

Czytam teraz ... nie wiedziałem nawet, że testy funkcjonalne mogą być zautomatyzowane. Słyszałem o Selenium, ale nigdy nie czytałem, o co w tym wszystkim chodzi. Wygląda świetnie do tej pory. Mam jednak pytanie .... jak często popełniasz swój kod podczas testowania urządzenia? Przechodzę przez bit tworzenia modelu Ankiety, ... i wydaje mi się, że trochę go przerabiam, jeśli mam napisać test, uruchomić go, dodać pole, zatwierdzić, uruchomić test, dodać kolejne pole, zatwierdzić , uruchom test, itp. ... Jakie jest tempo zmiany kodu? –

2

Django świetnie się przygotowuje. Określają one, co powinno i nie powinno być testowane, i jak korzystać z niektórych wbudowanych klas testowych. https://docs.djangoproject.com/en/dev/topics/testing/

Dodatkowo polecam biegacz testowy django-nose. Ma wiele świetnych wtyczek.

Myślę, że ogólną konwencją jest posiadanie pliku tests.py w każdej aplikacji.

Ja osobiście napiszę co najmniej 1 test dla każdej utworzonej przeze mnie funkcji. Więcej w zależności od tego, jak skomplikowana jest logika. Wraz z rozwojem aplikacji testy te rozwijają się w testy regresji dla mojego projektu.

+0

Czy masz lub znasz dobry przykład projektów, więc mogłem sprawdzić testy dla różnych aplikacji (formularze, widoki, adresy URL , modele, sesje itp.)? To byłoby naprawdę pomocne. Poza tym, jaki jest sens django-nosa? jakiego rodzaju wtyczek używasz? –