web-dev-qa-db-ja.com

`toBeInstanceOf(Number)`がjestで機能しない

次のようなテストがあります。

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

このテストは失敗し、奇数のエラーでa番号が予期され、numberが受信されたことが示されます。

 expect(value).toBeInstanceOf(constructor)

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

expect(value).not.toBeNaN();

編集:私は@bszomsソリューションで行きます:

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

これを行うこともできます:expect(typeof <value>).toBe('number')

または、 jest-extended を使用して、toBeNumberを含むすべての範囲のマッチャーを追加できます。

どちらもディスカッション here の好意によるものです。

12
bszom

以下はすべてのコンストラクタで機能します。

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

@stephanの答えを取り入れると、これは非同期/プロミスベースのメソッドで機能します。

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