`toBeInstanceOf(Number)` 开玩笑不起作用

`toBeInstanceOf(Number)` does not work in jest

我有一个测试如下:

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

此测试失败并出现一个奇怪的错误,指出需要一个数字并且收到了一个数字:

 expect(value).toBeInstanceOf(constructor)

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

期望(值).not.toBeNaN();

编辑:我会选择@bszoms 解决方案:

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

您也可以这样做:expect(typeof <value>).toBe('number')

或者您可以使用 jest-extended,它添加了整个范围的匹配器,包括 toBeNumber

均由讨论提供 here

以下适用于所有构造函数:

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

采用@stephan 的回答,这适用于基于异步/承诺的方法:

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