Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

420
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

0

Tendrás que exportarlo así:

 export default class API
about 4 years ago · Santiago Trujillo Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda