2009-03-27 18 views
43

Non riesco a trovare uno specifico confronto funzione per caratteristica di Moq e Rhino. Tutte le domande sono "che ti piace di più e perché", oppure "ecco come si fa un semplice finto rinoceronte e come è fatto in moq".Quali sono le funzionalità di Moq e Rhino.mocks?

Non riesco a trovare un confronto approfondito da nessuna parte. Sono a conoscenza delle differenze di sintassi, non sto cercando risposte al riguardo. Sto cercando un confronto di capacità. Ad esempio:

  • Rhino ha Expect.On() per filettato scherno. Moq può farlo?

  • Che dire di Multi-mocking (implementazione di più interfacce con una simulazione). Moq può farlo?

  • Credo che Moq possa ora prendere in giro i membri protetti. Rhino può farlo?

Edit: ho finito per guardare alcuni degli altri framework .Net pure.

+0

vedere anche http://stackoverflow.com/questions/642620/what-should-i-consider-when-choosing-a-mocking-framework-for-net –

+0

- Controllare [qui] (http: // code .google.com/p/moq/wiki/QuickStart) per le funzioni di moq - Controlla [qui] (http://ayende.com/projects/rhino-mocks.aspx) per le funzioni di Rhino Mock – rguerreiro

risposta

88

Grazie a coloro che hanno risposto nelle ultime settimane. Ho finito per scrivere un post sul blog sulle mie scoperte, dal momento che ho dovuto scavare così tanto che sembrava che potessi riassumerle nella speranza di aiutare gli altri. Il grafico che ho postato organizza i miei risultati:

alt text

Un avvertimento, che ho toccato nel post del blog, è che il grafico è utile per controllare le capacità, ma i veri vantaggi per la maggior parte dei quadri sono la loro unica Caratteristiche. Ho scelto Moq alla fine a causa dell'API facile da usare. Inoltre, tutte le informazioni sono soggette a errori e modifiche - se non si è d'accordo con qualcosa sul grafico, si prega di inviare un commento.

+0

Ho aggiornato leggermente il grafico. Potrebbero esserci un paio di revisioni nel prossimo istante, ho altri elementi pubblicitari aggiuntivi che potrebbero essere aggiunti. – womp

+3

+1 bel grafico, fa un buon riassunto – zombat

+0

Hey @ womp, puoi ricaricare il grafico? Il collegamento sta reindirizzando ad un segno giapponese ;-) –

2

Non sono un esperto in alcun modo, ma credo che Rhino abbia aggiunto una parte della sintassi Moq in modo che la curva di apprendimento sia stata ridotta a ciò che ci si aspetta da MoQ. Ho lavorato con entrambi i test e alcuni della sintassi erano quasi identici. Inizialmente avevo intenzione di andare con MoQ perché era più facile, ma poi il mio amico mi ha mostrato gli ultimi aggiornamenti e quanto erano simili. Ti sto solo facendo sapere.

+0

In realtà trovo che questo è una delle cose che rende Rhino più difficile. Quasi tutta la documentazione è per le vecchie sintassi, quindi finisci per mescolarle quando guardi gli esempi, portando a tutti i tipi di errori strani:/ – womp

+2

concordato.Sembra che abbiano provato a fare certe cose in molti modi senza rimuovere il "vecchio" modo di farlo. Suppongo che sia per compatibilità. Sinceramente ho una migliore comprensione di MoQ solo perché non prova a diffare un Mock o un Fake e nessuna sintassi funky. MoQ è molto carino con quello – rball

1

Rhino ha GetArgumentsForCallsMadeOn() che IMO rende più semplice verificare gli argomenti in alcuni casi.

-1

Potrei aggiungere "Verifica del comportamento" in questi. Questo sembra essere il più grande limite di Moq, che Rhino (non è sicuro degli altri) non ha problemi con.

+2

Che cosa è limitato nella verifica del comportamento in Moq? Non ho ancora incontrato alcun limite. Dispone di Verify() e VerifyAll() ed è possibile impostare qualsiasi chiamata di Setup() come verificabile indipendentemente dal valore restituito. – womp

0

Solo per completezza noterò che ora c'è NMock3 su CodePlex. Ha una facile migrazione da NMock2, basta sostituire il riferimento a NMock2.dll con un riferimento a NMock3.dll. Aggiunge sicurezza di tipo e supporto per il refactoring.

Problemi correlati