Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

415
Views
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 answers
Answer question

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 Report

0

Tendrás que exportarlo así:

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

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!