2012-08-29 17 views
5

Sto usando mocha per testare l'applicazione node.js.Come organizzare i miei file spec?

Ho notato che i miei file delle specifiche diventano sempre più grandi nel tempo. Ci sono schemi per organizzare i file di test (ad esempio un file di specifiche per test)? O ci sono altri framework su mocha per aiutarmi a strutturare i test? O preferisci altri framework di test per questo motivo?

risposta

1

I file di test/spec di grandi dimensioni tendono a significare che il codice in prova potrebbe essere eccessivo. Tuttavia, questo non è sempre il caso, spesso il tuo codice di test peserà sempre il codice sotto test, ma se stai trovando difficile gestirlo potrebbe essere un segnale.

Tendo a raggruppare i test in base alla funzionalità. Immaginate di avere example.js, mi aspetterei che example.tests.js iniziasse.

Piuttosto che una specifica chiamata ExampleSpec tendo ad avere molte specifiche/test basati su contesti diversi. Ad esempio, potrei avere EmptyExample, ErrorExample e DefaultExample che hanno precondizioni diverse. Se questi diventano troppo grandi, o hai delle astrazioni mancanti, o dovresti pensare a dividere i file. Così si potrebbe finire con una struttura di directory come ad esempio:

 
    specs/ 
     Example/ 
      EmptyExample.js 
      ErrorExample.js 
      DefaultExample.js 

Per cominciare, però, un test/file spec per ogni file di produzione dovrebbe essere il punto di partenza. Separare solo se necessario.

+0

quindi come eseguirlo? Mi piacerebbe "mocha testAll.js". testAll.js includerà tutti i sottotest. Come ottengo questo? –

+0

Ho la stessa domanda su come includere i sottotest. Finora sembra che sia necessario richiedere moka e utilizzarlo programmaticamente per includere altri test senza rompere le cose. O quello o utilizzare --recursive sulla riga di comando per raccogliere tutti i file. –

+0

@ NicolasS.Xu rispondere molto tardi ma tutte le specifiche potrebbero (dovresti?) Essere moduli commonjs richiesti in un 'index.js' a livello di sottocartella che richiama effettivamente le tue specifiche. Funziona benissimo in combinazione con gli script npm. –

Problemi correlati