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?
davy.ai
El error ocurre porque estás importando la función
validateForm
desde el componenteLogin
, 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:También nota que he agregado el argumento
password.length
a la llamada de la funciónvalidateForm
, ya que ésta requiere las longitudes tanto delusername
como delpassword
.