2012-09-10 17 views
5

abbiamo iniziato a utilizzare il nuovo Fakes framework per aiutarci ad aumentare la copertura di test su alcuni codici legacy in esecuzione nel framework .net 4.0. Sfortunatamente, sembra che non saremo in grado di effettuare l'aggiornamento a .net 4.5. Sarei corretto nel dire che non possiamo usare il framework Fakes con .net 4.0 (e VS2012) e che avremmo bisogno di usare il framework Moles ora non supportato?Microsoft Fakes e .Net 4.0

risposta

4

Anche se non sono un fan delle talpe in generale, capisco l'aiuto che possono avere nell'ottenere test sul codice legacy. Di seguito sono riportati alcuni altri strumenti che puoi prendere in considerazione. Ma seriamente, odio questi tipi di framework perché il modo giusto di fare le cose è scrivere codice che sia testabile e refactor del codice legacy che non lo è (ho capito che questo non è sempre facile o possibile). Credo che le talpe si libera del uno dei principali vantaggi di unit test, che è che ti costringe a scrivere del buon codice come discusso qui:

Qui ci sono un paio di cose da prendere in considerazione:

  • Moles (Predecssor a MS falsi Framework)
  • JustMock (meno costoso di TypeMock, ma ancora costoso)
  • TypeMock (costano pochissimo costoso!)

C'è anche una versione gratuita, luce del JustMock, non so cosa comprende.

+0

Grazie Jim. Ci rendiamo perfettamente conto che questi strumenti sono l'ultima risorsa e qualsiasi codice che sia stato scritto da zero sarà progettato tenendo conto dei test e delle dipendenze gestite correttamente. Non è tuttavia pratico per noi rifattorizzare l'intero codice base, ed è per questo che stiamo osservando questi tipi di framework di isolamento. – gmancoll

0

So che questo non è quello che hai chiesto, ma hai preso in considerazione/valutato i framework non-microsoft mocking?

Rhino.Mocks è incredibilmente popolare e robusto, e FakeItEasy è growing in adoption. La documentazione non è altrettanto ricca, ma è incredibilmente intuitiva e facile da usare.

+0

Dato che abbiamo a che fare con il codice legacy, la maggior parte delle nostre dipendenze non è sufficientemente astratta per il mocking da essere un'opzione (dove stiamo usando Moq), quindi abbiamo bisogno della funzionalità di deviazione di Moles/Fakes. – gmancoll

0

Sono test 3.5 assemblati con falsi, i test falsi sono compilati per 4.5. Non ho provato a compilarli per 3.5, ma non sono pensati per essere eseguiti sulla macchina di distribuzione.

0

Il framework Microsoft Fakes supporta le stesse versioni .NET di Visual Studio 2012 stesso. Questo include le versioni 4.5, 4.0, 3.5, 3.0 e 2.0.

2

È necessario utilizzare Visual Studio 2012 Ultimate o Premium Update 2 per poter utilizzare Microsoft Fakes ei test di unità possono essere indirizzati alle versioni precedenti di .NET framework.