web-dev-qa-db-fra.com

Comment éviter les avertissements Jest: Un rappel "décrire" ne doit pas renvoyer de valeur?

Après la mise à niveau de Jest de la version 23 vers la version 24, lors de l'exécution de mes tests, je reçois un message d'avertissement comme celui-ci pour presque tous les tests:

Un rappel "décrire" ne doit pas renvoyer de valeur. Le renvoi d'une valeur à partir de "décrire" échouera au test dans une future version de Jest.

La trace de pile qui l'accompagne pointe vers ce module:

addSpecsToSuite (node_modules/jest-jasmine2/build/jasmine/Env.js:443:15)

La raison en est que j'aime utiliser la version abrégée des fonctions fléchées pour mes tests, en omettant les accolades lorsque le corps de la fonction ne contient qu'une seule instruction, par exemple:

describe('true', () =>
    it('should be truthy', () =>
        expect(true).toBeTruthy()));

L'instruction it renvoie apparemment autre chose que undefined, d'où l'avertissement.

J'ai trouvé deux façons de résoudre ce problème:

① Ne pas utiliser les fonctions de flèche raccourcie

describe('true', () => {
    it('should be truthy', () =>
        expect(true).toBeTruthy());
});

② Utilisez void pour forcer le retour non défini

describe('true', () =>
    void it('should be truthy', () =>
        expect(true).toBeTruthy()));

Je ne trouve aucune de ces options acceptable, je ne veux pas refactoriser des milliers de tests juste pour faire plaisir à Jest (ou Jasmine).

Ma question est donc:

Existe-t-il un moyen de configurer Jest pour que ces avertissements ne soient pas émis lors de l'utilisation des fonctions de flèche raccourcie?

9
Patrick Hund

Peut être lié à une exception non gérée levée à l'intérieur de la fonction de rappel de description. Par exemple, je me suis rendu compte que je voulais accéder à la maquette d'un membre non existant (en dehors du bloc de test):

logger.info1111.mockImplementation((m, d) => console.info(m, d));
0
Yury Kozlov