Pregunta

Lo hice buscar en el foro y no encontré una pregunta similar. Estoy mirando para tomar una decisión final sobre nuestro marco de burla de la opción de seguir adelante como una buena práctica - He decidido sobre Moq ... hasta que me hace poco descubrí MS finalmente ha creado un marco de burla llamada Moles que parece funcionar similares Typemock a través de la API de perfiles sexyness etc ..

Hay un millón de 'NMock vs vs Moq Typemock vs Rhino ....' hilos de aquí. Pero nunca veo Moles involved.In hecho, ni siquiera sabía si su existencia hasta hace poco tiempo. Quien lo utiliza? ¿En producción? Cualquier persona volcar su marco de burla de edad para ello, y si es así, ¿cuál? ¿Cómo se compara a que exista burlarse de los marcos que ha utilizado?

Gracias .. ps, estamos utilizando VS2008 y estamos moviendo a 2010 en breve.

¿Fue útil?

Solución

Estoy en el mismo escenario donde se encuentra, así que me gustaría hacer comentarios sobre mis experiencias.

Tanto Typemock y topos tienen el objetivo de aislamiento en mente. Especialmente para aquellas clases sellados molestos, los métodos no virtuales.

Creo que un marco de aislamiento, como los mencionados anteriormente, se necesitan especialmente si se encuentra en las últimas fases de desarrollo y / o no tienen / poco control de la base de código.

Estas son las ventajas en Typemock, todavía no he descubierto con los lunares

  • Soporte para herramientas de cobertura de código (NCover y Partcover)
  • Soporte para interceptar / verificar el rasos (métodos / propiedades) [sí, esto es controvertido]
  • producto más pulido, y funcionamiento rápidamente con una API intuitiva (todavía jugar con lunares a trabajar incluso derecha)

Espero Moles madura en producto liberado, pero el comienzo de mi retoques con ella parece ser no es diferente de otros proyectos de investigación MS; por lo general sin pulir, pero que parece ser la naturaleza de ese tipo de proyectos.

Otros consejos

Creo que los lunares se están burlando al siguiente nivel, que es mucho más potente.

¿Qué quiere decir por 'en la producción' ?. Moles sólo son útiles en la unidad de pruebas. Tiene un impacto de gran rendimiento y también permite que el código inseguro en la producción (pensado alguna vez en la sustitución de una función para volver IsAuthorized cierto?).

Los lunares son utilizables tanto en 2008 y 2009.

Espero que esto responda a su pregunta.

Los lunares se utiliza internamente en Microsoft por varios equipos de producto.

Bueno, puede ser, hay pocos problemas de threads que parecen surgir en el medio, es muy difícil repro. Básicamente se estrella VS 2010, cuando incluso se intenta poner un punto de interrupción en el proceso adjunto. Sucedió varias veces para mí no sólo en una sola máquina, pero más tarde dissappeared por razones desconocidas.

A medida que pasa el desvío de depuración es una danza entre el código y el desvío que podría ser difícil de hacer frente con un principio y si hay una excepción durante tal continuación es sólo difícil de romper en la excepción.

El auto pruebas generadas y PUTs- su diificult a comprender cuál es el mensaje que están tratando de transmitir es decir, se debe cambiar el patrón de codificación o alguna otra cosa ya que aunque intenta generar prueba parametrizado basado en interfaz, pero dependiendo de la clase que se está probando, PUT auuto generación podrían no ser las mejores pruebas parametrizados forma de apalancamiento.

En general, hay una curva de aprendizaje más el marco también llevará algún tiempo para madurar. lado positivo, el concepto es bueno y el costo maintaince (si se aplica correctamente) y el tiempo de respuesta por parte del equipo de apoyo PEX es muy positivo, a veces se obtiene respuesta es útil dentro de 2 horas en el foro PEX.

Saludos Yogesh Pawar

Los lunares y Pex es cambio de paradigma !! su demasiado esperar de un frameowrk libre. Hasta el momento no he encontrado ninguna razón para no usarlo a menos que tenga la tecnología de base de código cruz, pero con tal de que .NET lunares I y Pex es sin duda la respuesta !!

Si por "la producción" que escriba usando en un producto que se utiliza en la producción de entonces absolutamente!

Estamos utilizando Moles para aislar funcionalidad en nuestras pruebas unitarias en un proyecto muy alto perfil para compañías como Google y McDonalds. Por supuesto, las pruebas unitarias no se ejecutan en el servidor de producción para los lunares nunca se implementa en la producción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top