Tengo dos clases (clase A y B) ambas marcadas con [Encuadernación]. Actualmente estoy usando una clase por función. Las clases A y B tienen un paso que tiene este aspecto:SpecFlow - Paso (Given) con la misma expresión regular en diferentes clases que no se ejecutan de forma independiente
[Given(@"an employee (.*) (.*) is a (.*) at (.*)")]
public void GivenAnEmployeeIsAAt(string firstName, string lastName, string role, string businessUnitName)
Cuando ejecuto el escenario de las características definidas en la clase A, y el corredor de prueba ejecuta el paso indicado anteriormente, la etapa correspondiente en la clase B obtiene ejecutado en su lugar.
¿Los "Pasos" también son globales? Pensé que solo los métodos de "gancho" son globales, es decir, BeforeScenario, AfterScenario. No deseo este comportamiento para "Dado", "Luego" y "Cuando". ¿Hay alguna forma de arreglar esto? Traté de poner las dos clases en diferentes espacios de nombres y esto tampoco funcionó.
Además, ¿estoy potencialmente abusando de SpecFlow al querer que cada "Dado" sea independiente si los pongo en clases separadas?
Excelente, estaba trabajando con SpecFlow esta mañana, encontré esta pregunta, y pensé que necesitaría la respuesta más tarde hoy, lo cual hice. – cfeduke
Así que supongo que si mi problema es tratar de organizar los pasos, lo que estoy haciendo actualmente en clases (por función), entonces la organización más apropiada sería por comportamiento. De esta forma, se pueden construir gradualmente colecciones de comportamiento que luego se reutilizarán. ¿Se pregunta si hay una herramienta similar a TestDox para SpecFlow? – SideFX
Sí, probablemente sea mejor que organice sus definiciones de pasos por entidad lógica (o mejor comportamiento de publicación). He creado un ejemplo de eso, que puede serle útil. Compruébelo aquí: http://www.marcusoft.net/2011/01/kanbanboards-part-iitwo-step-forward.html?m=0 –