Este es un ejemplo de una de nuestras pruebas de aceptación:¿Cómo contrarrestar el anti-patrón BDD-scripting en Specflow?
Feature: Add an effect to a level
In order to create a configuration
As a user
I want to be able to add effects to a level
Scenario: Add a new valve effect to a level
Given I have created a level named LEVEL123 with description fooDescription
And I am on the configuration page
When I click LEVEL123 in the level tree
And I expand the panel named Editor Panel
And I click the Add Valve Effect button
And the popup named ASRAddVal appears
And I click the Add new button
And I fill in these vertical fields
| field name | value |
| Name | Effect123 |
Then I should see the following texts on the screen
| text |
| Effect added : EFFECT123 |
Creemos que esto se está poniendo un poco para detallado y queremos escuchar cómo reducir los pasos en Specflow. Por lo que he leído hasta ahora, no se recomienda crear pasos específicos no reutilizables, entonces, ¿qué se considera "mejor práctica" al hacer esto en SpecFlow?
Actualización:
Lo que estoy tratando de decir es que he aprendido que usted debe tratar de crear pasos genéricos con el fin de volver a utilizarlos a través de múltiples pruebas. Una forma de hacerlo es parametrizar sus pasos, por ejemplo: "Dado que he creado un nivel llamado ...", pero la parametrización también introduce verbosidad. Quiero terminar con algo que Bryan Oakley sugiere en su respuesta, pero simplemente no puedo ver cómo puedo hacerlo sin crear pasos que sean muy específicos para cada prueba. Esto significa que terminaré con muchos pasos que reducen el mantenimiento. Parece que SpecFlow tiene alguna forma de definir los pasos abreviados al crear un archivo que hereda una clase base llamada "Pasos", pero esto aún introduce nuevos pasos.
Para resumir las cosas; muéstrame un buen enfoque para terminar con la respuesta de Bryan Oakleys, que es mantenible.
Bien, pero ¿cómo haces con los pasos que se vuelven muy específicos de la prueba? Según lo que he entendido hasta ahora, debes evitar los pasos específicos de la prueba. – Marius
@Marius: No entiendo tu pregunta. Naturalmente, _algo_ debe ser exclusivo de la prueba, como "Cuando agrego un nuevo efecto de válvula con los siguientes valores". Si no hubiera nada único, no tendría sentido la prueba. Por otro lado, cada uno de esos pasos podría usarse potencialmente en otras pruebas. Por ejemplo, "dado que he creado un nuevo nivel ... cuando elimino el nuevo nivel ...". O bien, "Cuando agregue un nuevo efecto de válvula nuevo ... entonces debería obtener el error" nombre de campo inválido "", etc. –
He intentado explicar mi problema con más detalle, consulte la actualización de la pregunta. – Marius