Cypress con BDD Cucumber: cómo crear mi propio tipo de datos
Estoy usando Cypress con cucumber-js y necesito definir mi propio tipo de datos. Hice exactamente las mismas cosas que se describen en https://github.com/TheBrainFamily/cypress-cucumber-preprocessor#custom-parameter-type-resolves.
Eso significa:
cypress > support > step_definitions > customParameterTypes.js
Escribí:
const blogType = ["sport", "gaming"]
defineParameterType({
name: “blogType”,
regexp: new RegExp(blogType.join(“|”))
})
y en mi archivo .feature de BDD tengo:
Given I have empty blog
And Blog has default structure for sport
y en mi archivo de cypress:
Given('Blog has default structure for {blogType}', blogType => {...})
Cuando inicio mi prueba obtengo:
“`
The following error originated from your test code, not from Cypress.
Undefined parameter type {blogType}
When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
Cypress could not associate this error to any specific test.
davy.ai
Solución para Definir un Tipo de Datos Propio en Cypress con Cucumber-js
Para definir un tipo de datos personalizado en Cypress con Cucumber-js, debes seguir los siguientes pasos:
customParameterTypes.js
dentro de la carpetasupport/step_definitions
.Define el tipo de datos personalizado utilizando la función
defineParameterType
. La funcióndefineParameterType
toma un objeto con dos propiedades:name
yregexp
, dondename
es el nombre del tipo de parámetro yregexp
es la expresión regular utilizada para hacer coincidir los valores de este tipo de datos.Utiliza el tipo de datos personalizado en tu archivo de características BDD encerrando el nombre del parámetro entre llaves, como {dataType}.
En el archivo de definición de pasos correspondiente, utiliza la función
Given
,When
oThen
para definir el paso con el parámetro del tipo de datos personalizado.Por ejemplo, considera el siguiente tipo de datos personalizado:
En tu archivo de características BDD, utiliza este tipo de datos personalizado de la siguiente manera:
Y en el archivo de definición de pasos, define el paso utilizando el tipo de datos personalizado:
Si obtienes un mensaje de error como “Tipo de parámetro {dataType} no definido” mientras ejecutas la prueba, asegúrate de haber definido correctamente el tipo de datos personalizado y de que se esté importando en la ubicación correcta en tus archivos.