2012-04-20 9 views
5

Estoy trabajando con un conjunto muy grande de características de pepino ya existentes y agregando pruebas adicionales. Para esas nuevas pruebas también estoy tratando de usar transformaciones para simplificar las tareas repetitivas.Determinación del alcance de una transformación en pepino

¿Cómo puedo agregar una transformación sin romper las pruebas ya existentes? Ya agregué contexto al grupo de captura, pero dado que el contexto es del mismo dominio comercial que las pruebas preexistentes, puede terminar fácilmente haciendo coincidir.

¿Hay alguna manera de aplicar solo una transformación a ciertos pasos?

Respuesta

2

Puede usar una etiqueta y un filtro Antes para establecer una variable de instancia en el Mundo. Esto está disponible para su Transform para que pueda realizar transformaciones específicas de etiquetas. Por ejemplo, si sólo quería transformar enteros cuando la etiqueta @hook está presente: se crea

Transform /(\d+)/ do |num| 
    if @hook 
    num.to_i 
    else 
    num 
    end 
end 

Before('@hook') do 
    @hook = true 
end 

un nuevo mundo para cada escenario y el Antes de filtros se llaman. Entonces @hook se reiniciará para cada escenario.

+0

Una idea interesante, pero ahora los archivos de características tendrían que ser conscientes de las transformaciones, cuando en realidad es la definición de paso que importa –

+0

@Chris Sí, supongo que no respondí tu pregunta * real * sobre aplicar la transformación a solo cierta pasos. Dijiste que son pruebas adicionales, así que pensé que eran escenarios nuevos. – graza

+0

¡Gracias, esto podría ser lo mejor que es posible en este momento! –

Cuestiones relacionadas