1
resposta

duvida sobre um erro no teste de uma classe

quando eu tento rodar o jest com uma classe ele me retorna um typeerror:

 ● testes de conexão da api wialon › teste de login

    TypeError: Cannot call a class as a function

    > 1 | import RequestBase from './requestBase.js';
        |                                     ^
      2 | // eslint-disable-next-line import/no-unresolved, import/extensions
      3 | import apiWialonOficial from '../../__mocks__/wialon';
      4 | // const apiWialonOficial = require('wialon');

      at _classCallCheck (src/tools/processamentos/wialon.js:1:37)
      at _classCallCheck (src/tools/processamentos/wialon.js:12:30)
      at Object.wialon (src/__tests__/tools/processamentos/wialon.test.js:7:21)

esse erro é referenciado como podendo ser resolvido com classes mock porém eu consegui fazer isso apenas para uma classe dos meus testes, as outras apresentaram varios problemas que não deixaram que os testes continuassem

entretanto eu preciso de rodar os testes para as classes originais do node e não para testes em classes de mock, existe alguma configuração do jest que corrija isso?

1 resposta

Oi, Miguel! Tudo bem?

Desculpa a demora por um retorno.

De acordo com a mensagem de erro enviada, o erro que estamos enfrentando é um TypeError que indica que estamos tentando chamar uma classe como uma função. Isso geralmente ocorre quando não usamos a palavra-chave "new" ao instanciar uma classe.

Também com base na mensagem de erro compartilhada, o problema pode estar relacionado à uma classe chamada RequestBase. Indico que verifique se a palavra chave "new" está sendo usada ao criar uma instância dessa classe, deixando-a semelhante ao exemplo abaixo:

const requestBase = new RequestBase();

Além disso, devemos verificar se a classe RequestBase foi implementada corretamente e se não há problemas em seu código, verificando se a classe está sendo exportada corretamente e se estamos importando-a corretamente no arquivo onde está ocorrendo o erro.

Em relação às configurações do Jest, o Jest em si não deve ser a causa desse erro, pois é um framework de teste e não interfere no funcionamento normal de classes do Node.js. Portanto, a configuração do Jest provavelmente não resolverá esse problema específico. Em vez disso, devemos verificar o código das classes envolvidas e garantir que estejam corretamente implementadas e utilizadas.

Caso a palavra-chave "new" esteja sendo usada corretamente e a classe esteja sendo implementada corretamente, pode ser necessário analisar outras partes do código em busca de possíveis problemas. Nesse caso, peço que envie mais informações sobre a implementação do código, além de envia-lo via GitHub ou Drive do Google, para que eu consiga analisar o seu código e elaborar uma resposta mais assertiva.

Espero ter ajudado. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software