2010-06-07 5 views
19

So che questa è una domanda soggettiva ...Typemock - Vale i soldi?

Typemock è $ 799 per sviluppatore. Le licenze per 5 sviluppatori arrivano a una somma piuttosto grande. Se qualcuno qui ha usato Typemock e dato che ci sono quadri di simulazione open source, vale la pena? Perché?

+0

Ho valutato Typemock.Non faccio abbastanza test per essere utile –

+1

Ho avuto un grande successo con Rhino .... funziona benissimo. –

+2

Forse vale la pena di riformulare questo per chiedere quali funzionalità di TypeMock forniscano alle librerie di mocking open source non - questa è una domanda a cui è possibile rispondere almeno in modo semi-oggettivo. –

risposta

19

Nel nostro progetto abbiamo avuto 12 licenze Typemock che abbiamo dovuto aggiornare ogni anno, ma Credo che sia valso ogni penny (in realtà øre) che abbiamo speso.

Perché? Typemock Isolator ha un importante vantaggio: non imposta (quasi) alcun vincolo sul codice necessario per prendere in giro. Costruttori privati? Classi sigillate? Lezioni statiche? Nessun problema: puoi isolare tutte queste cose usando Typemock.

Solo un esempio: è necessario testare il codice che gestisce SqlException con determinate proprietà, come si può fare? SqlException è una classe sealed con un costruttore non pubblico. Puoi venire con vari workaround, ma finché usi il codice gestito, non c'è modo diretto di prendere in giro SqlException.

L'isolatore Typemock intercetta il tuo codice come profiler, non gestito, quindi si apre per un beffardo molto più potente. E se hai a che fare con determinati prodotti (ad es. SharePoint), Isolator è l'unico framework in grado di gestirli, perché, come qualcuno ha detto, SharePoint è solo un gruppo di classi private sigillate.

Detto questo, a causa del suo potere, Typemock Isolator richiede agli sviluppatori di preoccuparsi maggiormente della verificabilità del proprio codice. Usare Isolator è più facile scrivere codice non testabile e continuare a testarlo con Isolator (suona in modo contraddittorio, lo so). Ma supponendo che tu abbia il tuo codice giusto, Typemock Isolator è uno strumento inestimabile per falsificare componenti di terze parti, e quando dico "terze parti" intendo anche cose che provengono da Microsoft e che non sono sempre facilmente verificabili.

7

La parte soggettiva è la tua analisi di quanto tempo (e quindi denaro) usando Typemock ti salverà. Può essere d'aiuto iniziare con quanto costa un ora di sviluppo. $ 100? In tal caso, quanto tempo ci vorrà prima che Typemock ti salvi 8 ore di tempo?

Probabilmente l'unico modo per prendere una decisione intelligente è ottenere una licenza di valutazione e fare dei veri test per vedere quanto tempo risparmia.

3

Questa probabilmente non è una risposta obiettiva come vorresti, visto che lavoro lì, ma questa è una lista di controllo su cui ho lavorato.

Questa è una lista delle domande si potrebbe desiderare di porsi nel valutare uno qualsiasi dei quadri attuale isolamento là fuori: http://site.typemock.com/isolation-framework-checklist

+1

sarebbe utile vedere alcuni esempi di codice (un la Pex) sul tuo TypeMockTV piuttosto che solo 2 ragazzi che sparano allo sh * t. – AngryHacker

+0

AngryHacker - esempi di cosa? – RoyOsherove

+1

esempi di come affrontare vari problemi con l'isolatore TypeMock e mostrare il codice per farlo. – AngryHacker

4

Lasciatemi prefigurare che utilizzo regolarmente TypeMock al lavoro e penso che sia un ottimo prodotto poiché può aiutarti a testare un codice molto non testabile con un'API piuttosto pulita.

Detto questo, si potrebbe voler fare un passo indietro e chiedersi se gli sviluppatori stanno scrivendo un buon codice orientato agli oggetti e seguendo le buone pratiche, o se stanno solo scrivendo codice malvagio che richiede strumenti e competenze pesanti (vedi http://googletesting.blogspot.com/2008/07/how-to-write-3v1l-untestable-code.html per ulteriori informazioni sul codice maligno).

Sarò estremamente felice il giorno in cui il nostro codice si è evoluto (ovvero è stato refactored) al punto in cui non abbiamo bisogno di uno strumento come TypeMock Isolator per testarlo correttamente.