Tengo el siguiente código:
it('should return a number', async () => { const exchangeRate = await getExchangeRate('USD','HUF') expect(exchangeRate).toBe() }) ¿Cómo puedo construir esta prueba para poder usar el método expect() para verificar si la constante de tipo de exchangeRate es un número flotante o solo un número ? ....
Puede afirmar el tipo del valor usando typeof :
expect(typeof exchangeRate === 'number').toBe(true)
Puede afirmar en lo siguiente
expect(Number.isInteger(exchangeRate)).toBe(true); // This will be true if its a Integer else it will be false for float.Para agregar más controles, puede hacer lo siguiente:
expect(!isNaN(exchangeRate) && Number.isInteger(exchangeRate)).toBe(true); // Check for Integer expect(!isNaN(exchangeRate) && !Number.isInteger(exchangeRate)).toBe(true); // Check for FloatEn javascript solo hay 1 tipo numérico: number . Tanto los valores int (enteros) como los valores flotantes (fraccionales) se almacenan utilizando el tipo de number .
Es posible verificar si un número es un valor entero usando Number.isInteger(x) , sin embargo, esto también devolverá verdadero si su flotador resulta ser 3.00000.... - que es un valor flotante totalmente válido, mientras que también es exactamente igual que el valor "entero" 3 .
En este caso, probablemente querrá usar typeof x == 'number' && !isNaN(x) que devolverá verdadero para todos los valores "flotantes", incluidos aquellos valores que resulten ser valores "enteros".