2010-01-25 16 views
7

Stiamo provando a utilizzare Fitnesse per il nostro test funzionale. Dovrei essere derisione delle dipendenze o dovrebbe testare contro il database?Fitness- I test devono essere comunicati al database?

Quali sono i pro/contro di entrambi gli approcci?

L'intera questione del test contro il DB è la creazione di dati che è enorme dipendenza. Se prendiamo in giro, allora è un test funzionale?

Grazie

risposta

4

Abbiamo un set completo di test funzionali end-to-end che funzionano in fitness in due modalità: "InMemory" e "Database" , A seconda della configurazione per eseguire i test in dettami quali repository utilizzano i test. Questo ha diversi vantaggi:

1) Mantiene gli sviluppatori dalla creazione di molte funzionalità nel database e mantiene il codice.

2) Quando "In memoria" i test di fitness sono eseguiti molto velocemente. Permettendo ai test di fallire molto velocemente ... e quindi accelerare lo sviluppo e l'agilità. Quando funzionano in modalità db, richiedono solo un po 'di tempo.

+0

Grazie. Ha assolutamente senso. – Naveen

0

Penso che dovrebbe testare il database. Perché come stai facendo un test funzionale con fitnesse, non dovrai usare finta. Usalo con il database per sapere se la funzionalità del database funziona correttamente o no dato che il tuo DB avrà enormi dati.

+0

Grazie. Che dire del dolore dei dati di installazione? Non è difficile per ogni caso di test. Vorremmo usare questa parte di CI. Quanto è facile o difficile in Fitnesse impostare i dati? – Naveen

3

vedo (almeno) 2 tipi di test che può essere fatto con FitNesse:

  • Test (o esempi) destinati secondo logica di dominio o comportamento. Questi tendo non da utilizzare con l'accesso al database in quanto di solito non è importante ai fini del test.

  • Test end-to-end (o quasi end-to-end) utilizzati come test di regressione o fumo. Questi, ovviamente, includono la funzionalità del database.

Il vantaggio di includere DB è che il test è più rappresentativa del sistema produzione attuale, lo svantaggio è il costo aggiuntivo di creazione e gestione database di stato. Guarda DbFit, una serie di dispositivi progettati per aiutare con l'impostazione e la verifica del DB.

1

Preferisco isolare i test di integrazione che coinvolgono il DB in NUnit. I tuoi test funzionali non dovrebbero fallire a causa di problemi di integrazione. Ho trovato più comodo trasportare stati degli oggetti attraverso semplici singleton che DB.

0

Ho lavorato alla creazione di una suite di test diversa per le cose correlate a DB che mi dà più sicurezza quando arrivo ad altri test di funzionalità. Cose come le regole aziendali, i proc memorizzati e alcune tabelle di base ma importanti possono essere convalidate per assicurarsi che siano dove si suppone che siano e per ottenere risultati corretti. Se ciò è come previsto, ciò che vedete sul front end dovrebbe essere un ambiente solido per eseguire test di funzionalità

Problemi correlati