2011-10-11 23 views
5

Sono nuovo sia per Django che per i test unitari, ma dal momento che sto iniziando un progetto dopo una discreta quantità di tempo a giocare con il framework, ho deciso di dare una prova unitaria.Come avviare TDD in Django?

Il mio entusiasmo a parte, sono abbastanza perso su come pianificare il processo di sviluppo. Ho fatto una piccola ricerca in github per i progetti Django che utilizzavano i test delle unità e sono incappato in this. Vedo che ci sono solo test sull'app "tagging", e sembra buono ma non ho idea di come scomporlo. Perché il file "models.py" nelle app/tagging/test /? Le classi di modelli non hanno nulla a che fare con quelle in app/tagging/models.py ...

Qualche idea su come capire questo o trovare un buon esempio su come implementare i test di unità in un ambiente di Django?

Inoltre, ho letto nei documenti che Django ha introdotto unittest2 in 1.3, quindi "Django 1.1 Testing and Debugging" di Karen M. Tracey "può essere una lettura utile o pensi che potrebbe causare una certa confusione?

Ad ogni modo, apprezzo qualsiasi input in anticipo.

risposta

5

Se riesco a collegare il mio tutorial, spiega come eseguire il TDD in Django da zero. Faccio gli stessi passaggi del tutorial "ufficiale" di Django, tranne che per l'utilizzo di TDD in ogni fase. Ciò include test completi dell'automazione del browser con Selenium (che consente di testare il comportamento dal punto di vista dell'utente finale, inclusa la possibilità di includere javascript in seguito). Mostro anche come utilizzare il Django TestClient per unit testing ...

http://tdd-django-tutorial.com

+0

Penso di essermi imbattuto in questo progetto (l'app per il django sondaggio + tutti i test) in github sme tempo fa. Non sapevo che ci fosse un passo dopo l'altro ... Grazie amico. È passato un po 'di tempo, ma lo darò un'occhiata. –

+0

guarda come sali! Ho provato a scriverlo in modo che non abbia alcuna conoscenza e segua passo dopo passo ... Commenti molto apprezzati! – hwjp

+0

Lo sto leggendo in questo momento ... non sapevo nemmeno che i test funzionali potevano essere automatizzati. Avevo sentito parlare del Selenio ma non ho mai letto di cosa si trattasse. Sembra fantastico finora. Ho una domanda però .... quanto spesso impegni il tuo codice durante il test unitario? Sto esaminando il bit di creazione del modello Poll, ... e sembrerebbe un po 'eccessivo farlo se dovessi scrivere il test, eseguirlo, aggiungere un campo, commettere, eseguire il test, aggiungere un altro campo, eseguire il commit , esegui il test, ecc ... qual è il ritmo per commettere le modifiche al codice? –

2

Django fa un ottimo lavoro per iniziare. Illustrano cosa dovrebbe e non dovrebbe essere testato e come utilizzare alcune delle classi di test integrate. https://docs.djangoproject.com/en/dev/topics/testing/

Inoltre, consiglierei il test runner django-nose. Ha un sacco di ottimi plugin.

Penso che la convenzione generale sia quella di avere un file tests.py in ogni app.

Scriverò personalmente almeno 1 test per ogni funzione che creo. Più dipende da quanto sia complicata la logica. Mentre l'app sviluppa questi test si trasformano in test di regressione per il mio progetto.

+0

Avete o vedi buoni progetti di esempio in modo da poter controllare i test per le diverse parti applicate (moduli, viste, URL , modelli, sessioni, ecc.)? Sarebbe davvero di aiuto. Inoltre, qual è il punto di naso-django? che tipo di plugin usi? –