如何在 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中只有一种数字类型:number
。 int (whole) 值和 float (fractional) 值都使用 number
[=28= 存储]类型。
可以使用 Number.isInteger(x)
检查数字是否为整数,但是如果您的浮点数恰好是 3.00000....
,这也会 return 为真 - 这是一个完全有效的浮点值,同时也与“整数”值完全相同 3
.
在这种情况下,您可能希望使用 typeof x == 'number' && !isNaN(x)
,它对所有“浮点”值 return 为真,包括那些恰好是“整数”值的值。
我有以下代码:
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中只有一种数字类型:number
。 int (whole) 值和 float (fractional) 值都使用 number
[=28= 存储]类型。
可以使用 Number.isInteger(x)
检查数字是否为整数,但是如果您的浮点数恰好是 3.00000....
,这也会 return 为真 - 这是一个完全有效的浮点值,同时也与“整数”值完全相同 3
.
在这种情况下,您可能希望使用 typeof x == 'number' && !isNaN(x)
,它对所有“浮点”值 return 为真,包括那些恰好是“整数”值的值。