ho iniziato allo stesso modo (la scrittura prende in giro a mano) e ormai mi sono quasi del tutto passa ad EasyMock.
Trovo che l'utilizzo di EasyMock sia in genere più veloce e più flessibile.
In genere la prima volta che ho bisogno di una simulazione, posso averla in un paio di righe di codice con EasyMock, mentre a mano ho bisogno di implementare l'interfaccia necessaria (abbastanza corretto, questo può essere generato da un IDE come IntelliJ) e quindi aggiungere il codice necessario per produrre la risposta necessaria e/o per consentire di rilevare gli effetti delle chiamate ad esso.
Bene, si potrebbe dire, questo è un costo una tantum. La prossima volta potrò semplicemente riutilizzare la mano scritta finta felice ... ho scoperto che spesso non è il caso. In un altro test potrei aver bisogno di una simulazione della stessa classe con un comportamento diverso. Per esempio. vengono chiamati diversi metodi e/o si aspettano risultati diversi. Un caso specifico è quando si presume che il mock lanci un'eccezione in un caso di test, ma non in un altro. Bene, posso aggiungere alcuni parametri che controllano il comportamento in modo dinamico. Quindi per il prossimo test, alcuni parametri per controllare un maggior comportamento ... quindi finisco con un'implementazione fittizia sempre più complicata, che è una dipendenza per sempre più test unitari - anche il rischio di interrompere inavvertitamente i test più vecchi.
Contrariamente a ciò, con EasyMock posso configurare i miei mock in modo indipendente per ogni test. Pertanto, il comportamento è esplicitamente controllato e visibile all'interno del codice di test unitario stesso e non vi è alcun rischio di effetti collaterali.
Per non parlare del fatto che con EasyMock è possibile verificare che i metodi richiesti siano richiamati nell'ordine richiesto, se è necessario (e lo faccio, di tanto in tanto). Implementare questo a mano (soprattutto in modo generico) sarebbe piuttosto un dolore al collo, senza alcun beneficio aggiunto.
fonte
2010-05-04 12:13:59
Inoltre, vedere http://stackoverflow.com/questions/1717107/why-do-we-need-mocking-frameworks – Finglas