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 probar si una función se llama con la palabra clave “async”

Quiero escribir una prueba simple para mi aplicación Vue3, la prueba debe asegurar que una función específica (en este caso, updateRoute) esté declarada con async en diferentes componentes.

Nota: según mi proyecto actual, no puedo aislar esta función en un solo archivo para hacerla reutilizable.

Ejemplo:
js
const updateRoute = () => { doSomethig() }

debe fallar

mientras que

const updateRoute = async () => { await doSomethig() }

debe pasar

La biblioteca de pruebas no importa, puede ser Jest o cualquier otra.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar una combinación de Jest y Vue Test Utils para escribir una prueba que asegure que la función updateRoute está declarada como async en diferentes componentes.

    Primero, necesitarás importar los componentes que deseas probar en tu archivo de prueba. Luego, puedes utilizar el método find de Vue Test Utils para localizar la función updateRoute en cada componente. Finalmente, puedes utilizar el comparador toBe de Jest para asegurar que la función updateRoute está declarada como async.

    Aquí hay un ejemplo de cómo podría ser la prueba:

    import ComponentA from './ComponentA';
    import ComponentB from './ComponentB';
    
    describe('updateRoute', () => {
      it('should be declared with async', () => {
        const updateRouteA = wrapperA.find(ComponentA).vm.updateRoute;
        const updateRouteB = wrapperB.find(ComponentB).vm.updateRoute;
    
        expect(updateRouteA).toBe('async');
        expect(updateRouteB).toBe('async');
      });
    });
    

Comments are closed.