2015-01-19 22 views

risposta

7

AutoFixture prende il nome dal Fixture modello:.

"un dispositivo di prova è tutte le cose che abbiamo bisogno di avere in atto al fine di eseguire un test e si aspettano un risultato particolare [...] La configurazione del dispositivo di prova è la prima fase di Four-Phase Test. "

Mentre un Shared Fixture è una possibilità concettuale, si tratta con un sacco di svantaggi, perché rende più difficile per fare i test indipendenti l'uno dall'altro.

AutoFixture è stato appositamente progettato per fornire una libreria riutilizzabile per la creazione di Fixtures, invece di dover codificare manualmente Fixture Objects per ogni nuovo tipo di contesto di test che avresti bisogno di creare.

Ci sono persone che creano un oggetto singolo (AutoFixture) Fixture e lo condividono su più metodi di test, ma non ho mai capito perché lo fanno; quasi sconfigge lo scopo di AutoFixture.

Ancora, se trovi utile un simile set-up, chi sono io per dirti di smettere di farlo? Qualunque cosa faccia galleggiare la vostra barca ... Tuttavia, AutoFixture è stato progettato con il caso di uso esplicito di una istanza Fixture per metodo di prova in mente, e non ho visto alcun vantaggio nel farlo in un altro modo.

6

La pratica migliore è di sfruttare AutoFixture.Xunit o AutoFixture.NUnit2 ed evitare di creare un'istanza Fixture, all'interno o all'esterno dei metodi o funzioni di test.

Se non è possibile utilizzare una qualsiasi delle biblioteche colla di cui sopra, si ritiene una pratica buon quando si utilizza una nuova istanza della classe Fixture in ciascuna prova .

L'utilizzo di una nuova istanza della classe Fixture consente di controllare il comportamento di AutoFixture in ogni particolare test, poiché è possibile applicare le personalizzazioni su di esso e non influiranno su tutti gli altri test.