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.

React JS Jest pruebas unitarias.

Dentro del componente funcional Login tengo una función validateForm que verifica que las longitudes de username y password sean mayores que cero.

function validateForm() {
  return username.length > 0 && password.length > 0;
}

Utilizo Jest como herramienta de prueba unitaria.

import React from "react";
import Login, { validateForm } from "./Login";
import { render, screen } from "@testing-library/react";

describe("LoginUser", () => {
  test("validate username and password should be greater than 0", () => {
    var username = "name";
    var password = "pass";
    expect(validateForm(username.length)).toBeGreaterThan(0);
  });
});

ninguno
TypeError: (0, _Login.validateForm) no es una función

Me enfrento al error anterior al ejecutar el caso de prueba. ¿Cómo resolver este error?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error ocurre porque estás importando la función validateForm desde el componente Login, pero ésta no es la exportación por defecto. Por lo tanto, necesitas usar las llaves {} para importarla como una exportación nombrada. Aquí está el código arreglado:

    import React from "react";
    import Login, { validateForm } from "./Login";
    import { render, screen } from "@testing-library/react";
    
    describe("LoginUser", () => {
      test("validate username and password should be greater than 0", () => {
        var username = "nombre";
        var password = "contraseña";
        expect(validateForm(username.length, password.length)).toBeTruthy();
      });
    });
    

    También nota que he agregado el argumento password.length a la llamada de la función validateForm, ya que ésta requiere las longitudes tanto del username como del password.

Comments are closed.