E 'una buona idea usare un quadro di test unitario per un altro scopo rispetto al codice di test?

1

Sto per scrivere un semplice script per testare un set di dati per determinate condizioni. Lo stavo progettando come una serie di funzioni ognuna delle quali descrive la condizione da testare e le passa al motore di test:

# The tester engine:
all(f(dataset) for f in conditions)

Mi sono reso conto che il mio approccio era simile al test delle unità. Quindi, per evitare di ripetere me stesso, sto pensando di usare il mio framework di testing dell'unità preferito.

  1. Cosa ne pensi di questa idea?
  2. Qualcuno di voi ha utilizzato un framework di test unitario per scopi diversi dal codice di test?
posta jgomo3 20.01.2012 - 16:34
fonte

2 risposte

2

Come testerai il codice principale se è già stato inserito nel framework di test dell'unità?

Qualsiasi framework di testing xUnit riporterà gli stati pass / fail e non farà nulla per il risultato. Se questo è quello che vuoi, fallo. Se si intende utilizzare tali dati per qualcosa, non utilizzare il test unitario. Ad esempio, non è possibile tentare di "correggere" il set di dati come, ad esempio, la conversione di anni a due cifre in anni a quattro cifre.

    
risposta data 20.01.2012 - 16:55
fonte
1

È un approccio interessante. Suppongo che tu stia specificatamente cercando qualcosa come un bel riassunto delle proprietà del tuo set di dati.

per es.

[X] Set è array ortogonale
[X] Set contiene la lettera s
[] Nessun elemento ha una profondità maggiore di tre generazioni.

Quale tecnicamente credo sarebbe un insieme di test ^ _ ^.

Puoi ancora testare la tua logica aziendale nello stesso modo in cui verificherai le tue asserzioni personalizzate e le classi stub / mock complesse, ad es. con più unit test che testano il tester.

Quindi. . . Supponendo che tu voglia solo un modo rapido per ottenere questo tipo di informazioni sul tuo set di dati usando un framework xUnit e il formato del tocco o qualcosa probabilmente non farà finire il mondo in tuoni e fiamme, dividi la terra per zero o qualcosa di troppo brutto.

Però è una specie di soluzione "I have a hammer".

Personalmente probabilmente cercherò un po 'le reti per vedere se qualcun altro ha una buona soluzione open source (http://cricket.sourceforge.net/ per esempio è vagamente simile) e se non frusta la mia soluzione e Rilasciarlo.

La logica di base dietro l'unità di test runner non è troppo cruda. Usa reflection per prendere l'elenco dei metodi nella classe corrente e gli attributi per taggare quali metodi vuoi eseguire e quali metodi devono essere eseguiti prima e dopo le tue "domande sui dati".

    
risposta data 21.01.2012 - 10:34
fonte

Leggi altre domande sui tag