如何在 React 测试中期待浮点数或只是一个数字

How to expect a float number or just a number in a React test

我有以下代码:

it('should return a number', async () => {
  const exchangeRate = await getExchangeRate('USD','HUF')
  expect(exchangeRate).toBe()
})

我如何构建这个测试,以便我可以使用 expect() 方法来检查 exchangeRate 常量是 浮点数 还是只是一个人数 ? ....

您可以使用 typeof:

断言值的类型

expect(typeof exchangeRate === 'number').toBe(true)

您可以断言以下内容

   expect(Number.isInteger(exchangeRate)).toBe(true); // This will be true if its a Integer else it will be false for float.

要进一步添加更多检查,您可以执行以下操作:

  expect(!isNaN(exchangeRate) && Number.isInteger(exchangeRate)).toBe(true); // Check for Integer
  expect(!isNaN(exchangeRate) && !Number.isInteger(exchangeRate)).toBe(true); // Check for Float

在javascript中只有一种数字类型:numberint (whole) 值和 float (fractional) 值都使用 number[=28= 存储]类型。

可以使用 Number.isInteger(x) 检查数字是否为整数,但是如果您的浮点数恰好是 3.00000....,这也会 return 为真 - 这是一个完全有效的浮点值,同时也与“整数”值完全相同 3.

在这种情况下,您可能希望使用 typeof x == 'number' && !isNaN(x),它对所有“浮点”值 return 为真,包括那些恰好是“整数”值的值。