Best practice per i file condivisi all'interno di fixture di unità multiple

2

Mi stavo chiedendo quale sia la migliore pratica generale quando si hanno più dispositivi di prova dell'unità che testano cose diverse che usano gli stessi percorsi di file.

I miei file di test sono in una struttura di directory con determinate regole, quindi attualmente sto riutilizzando macro di directory in ogni file, cioè

#define TYPE1FILE "Type1Files/"
#define TYPE2FILE "Type2Files/"

#define GENERIC_FILE "generic/"
#define SPECIAL_FILE "special/"

#define BAR1 TYPE1FILE GENERIC_FILE "/foo.txt"
#define BAR2 TYPE1FILE SPECIAL_FILE "/foo2.txt"
#define BAR3 TYPE2FILE GENERIC_FILE "/foo.txt"
#define BAR4 TYPE2FILE SPECIAL_FILE "/foo2.txt"

Tuttavia, questo sta iniziando a causare la duplicazione in più file perché più dispositivi di prova useranno lo stesso:

#define BAR1 TYPE1FILE GENERIC_FILE "/foo.txt"

se utilizzano entrambi lo stesso file.

Inoltre, sembra che potrebbe essere meglio dare loro un ambito usando le variabili all'interno del dispositivo o almeno all'interno del file.

Mi piace essere in grado di vedere un elenco di quali file vengono utilizzati per ogni test, ma sto anche considerando di spostare la BAR in un file di intestazione condiviso. Non sono pazzo di questa idea perché finirà per essere una gigantesca lista di file senza alcuna indicazione su cosa viene usato dove. Inoltre accoppia i casi di test più insieme.

Qualcuno ha qualche suggerimento?

    
posta drewag 17.06.2011 - 17:58
fonte

2 risposte

1

Non accoppi realmente la tua implementazione a una struttura di directory sul filesystem?

A parte questo punto, forse il problema è andato oltre ciò che puoi ottenere soddisfacentemente con #define ed è ora di scrivere del codice per gestirlo.

Sto pensando a un semplice string GetMyFilename(Conditions condition) in modo da poter utilizzare tutta la potenza del tuo linguaggio di sviluppo e non solo il preprocessore macro per gestire il file necessario per i tuoi test.

Il mio punto generale è che i test sono cittadini di prima classe della base di codice, non abbiate paura di usare tutte le vostre abilità e discipline su di loro.

    
risposta data 15.09.2011 - 23:18
fonte
0

Bene, questa non è scienza missilistica, ma avevo un'applicazione in cui avevo bisogno di testare 20 diverse versioni di file. Ho appena dato a ciascun file simile un prefisso specifico per la versione. I test verranno raggruppati in modo diverso, ma il mio suggerimento è di aggiungere un prefisso di file specifico per test o gruppo di test.

    
risposta data 28.07.2011 - 00:02
fonte

Leggi altre domande sui tag