'toBeInstanceOf (Number)' не работает в шутку

У меня есть тест следующим образом:

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

Этот тест терпит неудачу с странной ошибкой, говорящей, что число ожидалось, и был получен номер:

 expect(value).toBeInstanceOf(constructor)

    Expected constructor: Number
    Received constructor: Number
    Received value: 2000

Ответы

Ответ 1

  

expect(value).not.toBeNaN();

Изменение: я бы пошел с решением @bszoms:

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

Ответ 2

Вы также можете сделать это: expect(typeof <value>).toBe('number')

Или вы можете использовать jes-extended, который добавляет целый ряд совпадений, включая toBeNumber.

Обе любезности обсуждения здесь.

Ответ 3

Следующие работы для всех конструкторов:

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

Ответ 4

Принимая @stephan anwer, это работает для методов, основанных на асинхронности/обещании:

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