Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

417
Vistas
TypeError: _API.default no es un constructor con pruebas Jest

Tengo una clase de API que estoy tratando de usar en una aplicación React.

 // API file class API { ... } export default API; // Other file import API from "utils/API"; const api = new API();

Y me sale el error:

 TypeError: _API.default is not a constructor

Pero... ¿parece que mi valor predeterminado está configurado?

Mi configuración de Jest es así:

 "jest": { "setupFiles": [ "./jestSetupFile.js" ], "testEnvironment": "jsdom", "preset": "jest-expo", "transformIgnorePatterns": [ "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|react-router-native/.*|@invertase/react-native-apple-authentication/.*)" ] },

Mi fuerte conjetura es que esto se debe a una configuración de mi babel, webpack o package.json.

¿Qué podría estar causando esto?

Tenga en cuenta que quiero ser claro, esto no sucede en absoluto en mi aplicación principal, solo en las pruebas de Jest


Si lo cambio a una exportación/importación con nombre, obtengo esto:

 TypeError: _API.API is not a constructor

Comportamiento extremadamente confuso.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Como lo mencionaron otros, sería útil ver un ejemplo mínimo reproducible.

Sin embargo, hay otra causa posible. ¿Se está burlando de la clase API en su archivo de prueba? Este problema a veces puede ocurrir si una clase se burla por error como un "objeto" en lugar de una función. No se puede crear una instancia de un objeto con un operador "nuevo".

Por ejemplo, supongamos que tenemos un archivo de clase utils/API así:

 class API { someMethod() { // Does stuff } } export default API;

La siguiente es una forma "incorrecta" de simular esta clase y arrojará un TypeError... is not a constructor si se crea una instancia de la clase después de que se haya creado el simulacro.

 import API from 'utils/API'; jest.mock('utils/API', () => { // Returns an object return { someMethod: () => {} }; }) // This will throw the error const api = new API();

Lo siguiente se burlará de la clase como una función y aceptará el new operador y no arrojará el error.

 import API from 'utils/API'; jest.mock('utils/API', () => { // Returns a function return jest.fn().mockImplementation(() => ({ someMethod: () => {} })); }) // This will not throw an error anymore const api = new API();
about 4 years ago · Santiago Trujillo Denunciar

0

Tendrás que exportarlo así:

 export default class API
about 4 years ago · Santiago Trujillo Denunciar

0

Podrías probar con:

utilidades/API.js

 export default class API { ... }

prueba.js

 import API from "utils/API"; const api = new API();
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda