bdd - then - ¿MSpec y SpecFlow cuando usar cuál? ¿Cuáles son las ventajas/desventajas de cualquiera de los dos?
given when then cucumber (2)
Estoy tratando de comenzar con BDD y encontré una vista de publicaciones de blog sobre MSpec y SpecFlow. Actualmente no estoy muy seguro de cuándo usaría cuáles y cuáles son las ventajas / desventajas de cualquiera de los marcos.
En cuanto a la documentación, parece que MSpec usa el estilo de especificación de contexto, mientras que SpecFlow usa el estilo Dado / Cuándo / Entonces. Tampoco me importa realmente, pero me gustaría saber si hay algún escollo que ver en el futuro cuando el proyecto / conjunto de pruebas crezca.
Básicamente, algún consejo / retroalimentación de alguien que lo use en su trabajo diario sería genial.
Así que he usado ambos. Me gusta el flujo de trabajo de mspec porque es más fácil para mí hablar con los usuarios y decirlo.
"Al iniciar sesión" "Debería volver a la página que solicité"
Cuando he trabajado para organizaciones que han comprado más en colaboración activa (léase ágil ), he usado el patrón Dado cuando entonces. Esa organización estaba acostumbrada a las historias de usuario, por lo que estaban acostumbradas a un estilo de especificación más rígido. También estábamos usando más de una herramienta para introducir las especificaciones. por lo tanto, los archivos de características ''solo texto'' podrían reutilizarse entre herramientas.
En mis propios proyectos, uso SpecFlow para el ''exterior'' y ''mspec'' para el interior de las pruebas. Si tuviera que asesorar a alguien, sería utilizar el flujo de especificaciones si personas no técnicas escriben las especificaciones externas y mspec si un desarrollador escribe el.
Puntos negativos: Mspec es una explosión de clase SpecFlow es un flujo de trabajo más lento Puntos buenos: Mspec es un lenguaje más natural Specflow es mejor para la reutilización de los pasos.
La conclusión es que funcionan bien juntos.
Una desventaja de mspec es que no puede ejecutarse en paralelo, mientras que con specflow runner puede hacerlo. Ese es un gran problema de rendimiento.