2011-04-28 33 views
16

Estoy tratando de comenzar con BDD y encontré una vista de blog sobre MSpec y SpecFlow. Actualmente no estoy muy seguro de cuándo usaría cuál y cuáles son las ventajas/desventajas de cualquiera de los marcos.MSpec y SpecFlow cuándo usar qué? ¿Cuáles son las ventajas/desventajas de cualquiera?

Al mirar la documentación, parece que MSpec utiliza el estilo de especificación de contexto, mientras que SpecFlow usa el estilo Dado/Cuando/Luego. En realidad, no me importa, pero me gustaría saber si hay algún inconveniente que tener en cuenta a medida que el conjunto de proyecto/prueba crece.

Básicamente algunos consejos/comentarios del mundo real de alguien que lo usa en su trabajo diario sería genial.

Respuesta

18

Así que he usado ambos. Me gusta el flujo de trabajo de mspec porque es más fácil de vender para que pueda hablar con los usuarios y decir.

"Al iniciar la sesión en" "Debería volver a la página que solicitó"

Cuando he trabajado para las organizaciones que han comprado más en la colaboración activa (lectura ágil ) He utilizado el Dada Cuando el patrón Then. Esa organización se usó para las historias de los usuarios, por lo que estaban acostumbrados a un estilo de especificación más rígido. También utilizamos más de una herramienta para alimentar las especificaciones. por lo que los archivos de características 'solo texto' podrían reutilizarse entre herramientas.

En mis propios proyectos utilizo SpecFlow para 'outside' y 'mspec' para el interior de las pruebas. Si tuviera que dar un consejo a alguien, sería utilizar el flujo de especificaciones si personas no técnicas están escribiendo las especificaciones externas y mspec si un desarrollador está escribiendo el.

puntos negativos: Mspec es la explosión de clase SpecFlow es un flujo de trabajo más lenta puntos positivos: Mspec es un lenguaje más natural Specflow es mejor para la reutilización de los pasos.

La conclusión es que funcionan bien juntas.

1

Una desventaja de mspec es que no se puede ejecutar en paralelo, mientras que con el corredor de flujo de espectros se puede. Ese es un gran problema de rendimiento.

Cuestiones relacionadas