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.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    1. Crea un archivo customParameterTypes.js dentro de la carpeta support/step_definitions.
    2. Define el tipo de datos personalizado utilizando la función defineParameterType. La función defineParameterType toma un objeto con dos propiedades: name y regexp, donde name es el nombre del tipo de parámetro y regexp es la expresión regular utilizada para hacer coincidir los valores de este tipo de datos.

    3. Utiliza el tipo de datos personalizado en tu archivo de características BDD encerrando el nombre del parámetro entre llaves, como {dataType}.

    4. En el archivo de definición de pasos correspondiente, utiliza la función Given, When o Then para definir el paso con el parámetro del tipo de datos personalizado.

    Por ejemplo, considera el siguiente tipo de datos personalizado:

    const blogType = ['sport', 'gaming']
    
    defineParameterType({
        name: 'blogType',
        regexp: new RegExp(blogType.join('|'))
    })
    

    En tu archivo de características BDD, utiliza este tipo de datos personalizado de la siguiente manera:

    Given I have an empty blog
    And Blog has default structure for {blogType}
    

    Y en el archivo de definición de pasos, define el paso utilizando el tipo de datos personalizado:

    Given('Blog has default structure for {blogType}', blogType => {
      // Tu código aquí
    })
    

    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.

Comments are closed.