es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo reutilizar el paso dado de SpecFlow de manera más eficiente?

Me están faltando ideas…
Tengo este esquema de escenario:

Esquema de escenario: Se asigna un miembro a un ámbito dinámico

Dado que existe un ámbito dinámico de dispositivo con "<id>", "<nombre>", "<descripción>" y "<filtro>"

Cuando realizo una solicitud de asignación de miembro con "<ID de miembro>", "<nombre>", "<apellido>" y "<correo electrónico>"

Entonces la respuesta es "<código de estado>"

Y se añade un miembro con "<ID de miembro>", "<nombre>", "<apellido>" y "<correo electrónico>" al ámbito dinámico de dispositivo

Ejemplos:

| no | id | nombre | desc | filtro | ID de miembro | nombre | apellido | correo electrónico | código de estado |

| 1 | 01 | nombre | desc | filtro | ee749612 | primero | último | t1@mail.com | Creado |

Quiero poder reutilizar este esquema de escenario y ejecutarlo para un ámbito dinámico de personas. Algo así:

Dado que existe un ámbito dinámico de personas con "<id>", "<nombre>", "<descripción>" y "<filtro>"

El paso detrás del “Dado” para el ámbito dinámico de dispositivo se ve así:

[Dado(@"un ámbito dinámico de dispositivos con ""(.*)"", ""(.*)"", ""(.*)"" y ""(.*)"" existe")]

public void DadoQueExisteUnÁmbitoDinámicoDeDispositivoConYExiste(Guid id, string nombre, string descripción, string filtro)
{
    _scopeId = _scenarioSettings.ScopesStorage.BuildTestDynamicDeviceScope(id, nombre, descripción, filtro);
}

¿Tienes alguna idea de cómo puedo mejorar esto sin copiar todo el escenario?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una manera de reutilizar el esquema de escenario para el alcance dinámico de personas es crear un nuevo método de definición de paso para el paso Given con una expresión regular diferente. Este nuevo método de definición de paso puede tener la misma implementación que el paso Given para el alcance dinámico de dispositivos, pero con un nombre de método y tipos de parámetro diferentes.

    Por ejemplo:

    [Given(@"se ha creado un ámbito dinámico de personas con ""(.*)"", ""(.*)"", ""(.*)"" y ""(.*)"" existente")]
    public void GivenADynamicPeopleScopeWithAndExist(Guid id, string name, string description, string filter)
    {
        _scopeId = _scenarioSettings.ScopesStorage.BuildTestDynamicPeopleScope(id, name, description, filter);
    }
    

    Luego, en el esquema de escenario, simplemente puede reemplazar el paso Given con la nueva definición de paso:

    Se ha creado un ámbito dinámico de personas con "<id>", "<nombre>", "<descripción>" y "<filtro>" existente
    

    De esta manera, puede reutilizar el esquema de escenario sin tener que duplicar todo el escenario.</descripción>

Comments are closed.