web-dev-qa-db-fra.com

`toBeInstanceOf (Number)` ne fonctionne pas en plaisantant

J'ai un test comme suit:

expect(result.data.quota).toBeInstanceOf(Number);

Ce test échoue avec une erreur étrange disant qu'un numéro était attendu et qu'un numéro a été reçu:

 expect(value).toBeInstanceOf(constructor)

    Expected constructor: Number
    Received constructor: Number
    Received value: 2000
18
user6269864

attendre (valeur) .pas.àBeNaN ();

Edit: j'irais avec la solution @bszoms:

expect(typeof value).toBe('number')
11
Reynicke

Vous pouvez également faire ceci: expect(typeof <value>).toBe('number')

Ou vous pouvez utiliser jest-extended , qui ajoute toute une gamme d'apparieurs dont toBeNumber.

Les deux courtoisie de la discussion ici .

12
bszom

Les travaux suivants pour tous les constructeurs:

expect(value).toEqual(expect.any(Number));
11
stephan

En prenant la réponse de @ stephan, cela fonctionne pour les méthodes basées sur l'async/promesse:

await expect(asyncFunction()).resolves.toEqual(expect.any(Number));
1
Lukas