Domanda

Io sono curioso di sapere quanti di voi, gente, incorporare beffardo di oggetti (quadri, come JMock, NMock, RhinoMocks mano nella mano con i test di unità quadri) nel quotidiano processo di sviluppo.Quali sono le vostre esperienze?

Vedi, io sviluppano sulla cima di un GIS (geographic information systems), piattaforma, in cui la maggior parte del lavoro riguarda alcune modalità del trattamento dei dati.Come il suo modello a oggetti dei dati è abbastanza complesso (molte, molte classi e interfacce, tutti basati su COM), è anche molto difficile e complicato per il mock.In questo caso, beffardo comporta una grande quantità di overhead durante la scrittura di suite di test.Mi chiedo se ci sono persone in situazione simile, o semplicemente, come si fa beffe (in qualsiasi situazione) il lavoro per voi.

È stato utile?

Soluzione

In un recente progetto a cui ho lavorato, abbiamo utilizzato gli oggetti mock ampiamente nella nostra unità di test.Il progetto è stato del 100% Java e di dimensioni modeste (circa 100.000 righe di non-ha commentato il codice).È stata un'Altalena di base di applicazioni desktop e l'unico modo efficace che abbiamo trovato per testare l'interfaccia utente logica è stato attraverso un MVC variante di design che ci ha permesso di utilizzare gli oggetti fittizi per sostituire l'attuale Swing interfaccia utente classi per il test automatico.Abbiamo anche utilizzato beffardo ampiamente in controllo del nostro livello di accesso ai dati (Hibernate/Tao).

Nell'interfaccia utente di utilizzare, le Simulazioni sono state facile e semplice da costruire.E il design dell'applicazione (Fowler Vista Passivo) facilmente incorporati prende in giro.Questo non era il caso per le simulazioni test il livello di accesso ai dati.Ma posso dire che è stato chiaramente vale la pena.In realtà, la maggior parte di 'sforzo' molto concentrata sul fino a venire con una soluzione riutilizzabile che hanno minimizzato il lavoro che uno sviluppatore ha dovuto fare per creare ogni singolo finto.Mi consiglia di prendere il tempo per scavare e scoprire un approccio per la tua situazione che ti permette di deridere i tuoi dati GIS layer.Che - o semplicemente manualmente mock up di ogni classe.In ogni modo la possibilità di eseguire unit test automatizzati che si basano su simulazioni vale la pena...

Altri suggerimenti

Nella mia situazione deride il lavoro veramente bello. Ma io sto usando Python, che è così dinamico che rende molte cose che coinvolgono il test di molto, molto più facile.

In una situazione come la tua, quando l'applicazione è principalmente data-driven (da quanto vedo), prende in giro non può essere utile.Solo il passaggio di dati nel e la visione uscire dovrebbe essere sufficiente per il test.Vorrei solo assicurarsi che l'applicazione è modulare abbastanza, in modo che questo approccio può essere applicato a ragionevolmente piccoli componenti.

Beffardo può essere utile in un qualche tipo di progetto.Ma, a volte beffardo, richiede molto tempo e il ROI è basso.

Cercando di test di Sharepoint sembra che beffardo è l'unico modo, e solo typemock vi permetterà di mock classi chiuse.

Beffardo è utilizzato molto ampiamente nel mio caso.Le simulazioni sono di solito per le classi che non ha dipendenze esterne, ad es.di rete, database, file system.Uno di questi può introdurre difettose nei test prende in giro se non vengono utilizzati.

Se la prende in giro che si trovano costoso di scrivere, perché ci sono un sacco di falsi dati per popolare, si potrebbe impostare un po ' di pre-popolato di oggetti dati come costanti e li usa o leggermente modificati copie del test.Se tali oggetti dati ha dipendenze esterne, quindi forse il refactoring in un modo è possibile separare le due preoccupazioni.

C'è un'iniziativa partita da Dave Bouman per provare a costruire una comunità libreria di Simulazioni per l'uso in ArcObjects relativi test di unità.Il suo blog e questo repository svn hanno grandi informazioni relative al test di unità sistemi GIS

http://blog.davebouwman.net/CategoryView,categoria,Unità%2BTesting.aspx

http://svn2.assembla.com/svn/arcdeveloper/TestingUtilities/trunk/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top