2012-01-13 9 views
17

Sto imparando TDD/BDD usando MiniTest. Quello che sto cercando di capire è quali parti del mio codice dovrebbero essere testate con MiniTest :: Unit :: TestCase e quali parti dovrebbero essere testate usando MiniTest :: Spec.Quando uso MiniTest :: Unit :: TestCase contro MiniTest :: Spec?

Comprendo la differenza tra test di unità e test di integrazione, ciò che non riesco a capire dagli esempi sul web è se un TestCase e una Spec sono entrambi test unitari o se viene utilizzato un TestCase per un'unità test e una specifica utilizzata per i test di integrazione?

Devo tenere i miei test rapidi delle unità nelle classi MiniTest :: Unit :: TestCase e test di integrazione più lunghi, che descrivono più spesso le caratteristiche, nelle aspettative MiniTest :: Spec? Ha importanza, o è una questione di preferenze personali?

risposta

4

Se io uso MiniTest::Unit (con assertions) vs MiniTest::Spec, è determinato da chi sto scrivendo per.

Per il codice che scrivo da solo, senza requisiti "clienti", utilizzerei MiniTest :: Unit. Le prove hanno senso per me e leggerle è terso e al punto.

Se scrivo codice per un cliente che ha un elenco di requisiti, utilizzerei MiniTest :: Spec. I file spec sono più leggibili per i non programmatori.


Nota: MINITEST ha subito una revisione l'anno scorso quindi alcuni dei nomi dei moduli cambiati, ma l'idea è la stessa, MINITEST supporta un modo più conciso e più dettagliato, di unit test di scrittura.

+0

Quindi sono essenzialmente due modi diversi di fare la stessa cosa? Semplicemente sintatticamente diverso ...? – Mohamad

+0

Praticamente. Ci sono un certo numero di "lingue" differenti per scrivere i test unitari e si riducono a diversi modi di dire la stessa cosa. Aggiungono diversi livelli di verbosità, rivolti a diversi tipi di persone. Gli sviluppatori tendono ad apprezzare la tenacia dei test unit generici con le asserzioni. Per i project manager e/o clienti che non "parlano di programmazione", Spec funziona meglio o usa qualcosa che dice le stesse cose in termini più comuni. –

Problemi correlati