2009-02-18 16 views
14

Su stackoverflow mi sono imbattuto in mbunit. Sulla sua pagina si afferma che mbunit è un framework di test unitario generativo, ma non riesco a trovare da nessuna parte che descriva cosa sia un quadro di test unitario generativo.Che cos'è un quadro di test unitario generativo?

speravo di ottenere:

  • Una definizione
  • Link ad articoli su ciò che un quadro unit test generativa è e non è.

risposta

22

Un quadro di test generativo è uno in cui il codice stesso genera casi di test.

In genere si scrive codice per generare casi di test in base a una o più ipotesi che si desidera testare.

Non sto fambiliar con MbUnit in sé, ma per esempio utilizzando il framework di test generativa Clojure test.generative è possibile scrivere test come:

(defspec integers-closed-over-addition 
    (fn [a b] (+' a b))     ;; input fn 
    [^long a ^long b]      ;; input spec 
    (assert (integer? %)))     ;; 0 or more validator forms 

Questa prova specifica direttamente l'ipotesi che si desidera testare (vale a dire che la l'aggiunta di due lunghi produce sempre un numero intero).

Il punto importante è che non è necessario specificare particolari valute long per il test: il framework stesso genera combinazioni arbitrarie di input e verifica che le asserzioni siano valide in ogni caso.