Ho l'idea alla base del test delle unità, tuttavia sto cercando di pensare a un modo semplice e pulito quando richiede la funzionalità del database. Ad esempio, ho una funzione che restituisce il risultato basato su una query di selezione del database. Il database dovrebbe sempre rimanere lo stesso per me per vedere correttamente che vengono restituiti solo i risultati corretti. Qual è il modo migliore per eseguire il test delle unità (in PHP) quando richiede l'inattività del database (che sia letto, scritto, aggiornato o eliminato)?Quali sono le best practice standard per creare test unitari per la funzionalità utilizzando i database?
risposta
C'è un intero capitolo su che in manuale PHPUnit:
- http://www.phpunit.de/manual/current/en/database.html e anche la pena di leggere
- http://matthewturland.com/2010/01/04/database-testing-with-phpunit-and-mysql/
E 'come con tutto il resto, quando unit test. Crea uno stato conosciuto e testalo con il tuo codice per vedere se restituisce i risultati attesi.
Ho paura che il link alla guida non sia funziona (404). –
Link aggiornato https://phpunit.de/manual/current/en/database.html – leticia
Personalmente, creo un database di test fittizio e lo popolo con un set di dati noto per ogni esecuzione di test (lo faccio correttamente nelle funzioni setUp
). Quindi i test vengono eseguiti su quel set di dati, quindi viene rimosso su tearDown
...
Ora, questo è più di un test di integrazione di un test di unità (e personalmente lo tratto in modo diverso da un test di unità, eseguito sul suo proprio programma insieme ad altri test di integrazione), ma è ancora abbastanza utile.
+1 per "più di un test di integrazione di un test di unità" - Sono attualmente in fase di determinazione di quale delle nostre unità "I test hanno effetti collaterali su un database e li riclassificano come test di integrazione in modo da poter eseguire i test unitari più frequentemente e salvare i test di integrazione a bassa velocità per le build durante la notte. –
Non è un test di unità se ha bisogno del database.
Francamente, è chiaro che il richiedente stava parlando di test * funzionali *, che in realtà dovrebbero avere qualcosa come il tuo database. –
È interessante! Mai stato a conoscenza di quello ... – Sliq
Quello avrebbe dovuto essere un commento alla domanda, o forse anche una modifica, ma questa non è una risposta. –
- 1. Quali sono le best practice per CDN?
- 2. Quali sono le best practice per la gestione dell'ID evento?
- 3. Quali sono i modelli e le best practice per la memorizzazione nella cache in ASP.NET?
- 4. Best practice per i test delle unità Android?
- 5. Quali sono alcune best practice e "regole pratiche" per la creazione di indici di database?
- 6. Quali framework di test unitari sono disponibili per l'assembler x86?
- 7. Dove sono i test unitari per le classi Java "native"?
- 8. best practice dbunit per le prestazioni
- 9. jQuery Standard e Best Practice
- 10. Quali sono le best practice per il controllo del codice sorgente e la configurazione?
- 11. Best practice per l'organizzazione di test di selenio e test di unità
- 12. Quali sono le best practice di Team City per la distribuzione multistadio?
- 13. Best Practice per la classe di utilità?
- 14. Best practice per la modellazione LDAP
- 15. API Best practice per Throttling
- 16. Best practice per le API sicure?
- 17. Best practice per la gestione della ricerca
- 18. Quali sono le best practice e le linee guida dell'organizzazione della soluzione Xcode?
- 19. Best practice per le eccezioni Python?
- 20. Linee guida per la codifica + Best practice?
- 21. Best practice per l'architettura di integrazione per le applicazioni Enterprise
- 22. Best practice per compatibilità legacy
- 23. JUnit Test Best Practice basato su JPA
- 24. Test di integrazione Big Data best practice
- 25. Quali sono le best practice per l'utilizzo di require in Ruby?
- 26. C++ Best practice per le costanti
- 27. Test per le vulnerabilità della sicurezza nelle applicazioni Web: best practice?
- 28. Best practice per i tipi di contenuto in SharePoint
- 29. Registrazione per ASP.NET - Best practice
- 30. JUnit Best Practice: Fixtures diversi per ogni @Test
Vedere qui: http://stackoverflow.com/questions/145131/whats-the-best-strategy-for-unit-testing-database-driven-applications/145163 –