Ответ 1
expect(value).not.toBeNaN();
Изменение: я бы пошел с решением @bszoms:
expect(typeof value).toBe('number')
У меня есть тест следующим образом:
expect(result.data.quota).toBeInstanceOf(Number);
Этот тест терпит неудачу с странной ошибкой, говорящей, что число ожидалось, и был получен номер:
expect(value).toBeInstanceOf(constructor)
Expected constructor: Number
Received constructor: Number
Received value: 2000
expect(value).not.toBeNaN();
Изменение: я бы пошел с решением @bszoms:
expect(typeof value).toBe('number')
Вы также можете сделать это: expect(typeof <value>).toBe('number')
Или вы можете использовать jes-extended, который добавляет целый ряд совпадений, включая toBeNumber
.
Обе любезности обсуждения здесь.
Следующие работы для всех конструкторов:
expect(value).toEqual(expect.any(Number));
Принимая @stephan anwer, это работает для методов, основанных на асинхронности/обещании:
await expect(asyncFunction()).resolves.toEqual(expect.any(Number));