2010-06-14 6 views

Respuesta

15

De hecho, yo uso Moq y Moles en el mismo proyecto de prueba. Ambos tienen puntos fuertes y yo uso cada uno cuando sea apropiado. En general, utilizo Moq para el tipo estándar de prueba AAA con verificación, y Moles es el "arma grande" para cosas que no se pueden mover, como llamadas a métodos de extensión, etc.

Me gusta esta disposición, porque cada prueba puede ser como lo más simple y sensato posible, a pesar de que la configuración de burla puede variar mucho de una prueba a otra.

+2

+1 Punto importante que ambos se pueden usar juntos: solo tiene que elegir su 'burlador de primer recurso' cuidadosamente. –

+1

sería genial ver un ejemplo de esto, cualquier publicación de blog en su flujo de trabajo? Me parece un poco antinatural para TDD tbh – roundcrisis

+1

Tienes razón en que merece un ejemplo, no tengo uno en este momento, pero miraré alrededor y veré si algún código que tengo podría convertirse en uno. – ZeroBugBounce

3

Moles se compara/contrasta más a menudo con TypeMock en que ofrece un conjunto de instalaciones fuera de Moq y/o el punto óptimo de RhinoMocks.

La pregunta principal que tiene que preguntarse al elegir es si desea mantener su prueba relativamente baja tecnología o involucrarse en un nivel superior de engaño técnico. Esto dependerá en gran medida de lo que esté haciendo: ha etiquetado ASP.NET y no MVC, lo que sugiere que puede ser relevante para usted.

Echa un vistazo a this Dimecasts.net video para tener una buena perspectiva.

+0

Estoy usando ASP.NET MVC. He actualizado las etiquetas. – user300981

+0

@ bobsmith123: En ese caso, yo personalmente no vería una razón para usar un marco de burla más pesado: aplazaría tirar de esa artillería hasta que sea necesario. Sin embargo, usar Pex es una decisión separada que debería ser independiente de tu elección de marco de burla. ¿Por qué etiquetaste la q con Pex y luego no te refieres a ella? ¿Estás interesado en usarla? ¿Estás preguntando si son mantequilla de maní y jalea/crees que es indivisible de Moles? –

5

Moles fue diseñado para funcionar eficientemente con el análisis de caja blanca de Pex. El resto del marco simulado suele incurrir en una gran sobrecarga.

Moles proporciona una propuesta de valor simple: reemplaza cualquier método .NET con un delegado. Por diseño, Moles no proporciona ninguna API para expresar la 'verificación' como lo hacen otros marcos. Depende de usted decidir si esta decisión le conviene o no.

Si necesita lidiar con el código (heredado) que depende de métodos estáticos codificados o de tipos sellados con constructores internos, Moles puede ayudarlo a manejar estos casos.

Si tiene interfaces y código muy bien compuesto, Moles también genera stubs delgados, es decir, la implementación de la interfaz, que puede usar con el generador de perfiles.

+0

+1 Si desea ver cuántas veces se llamó un método en Moles, debe ingresar su propio contador y hacer que el delegado llame al método original (si lo desea). Contraste eso con 'Times.Once' y otros métodos provistos por algunos frameworks (como Moq). – Pat

Cuestiones relacionadas