J'ai besoin de comparer deux valeurs: l'une une chaîne et l'autre est float donc je convertis la chaîne en float puis j'essaye d'appeler assertEquals(val1,val2)
mais ce n'est pas autorisé, je suppose que le assertEquals
doesn n'accepte pas float comme arguments.
Quelle est la solution pour moi dans ce cas?
Vous devez fournir un delta à l'assertion pour Floats:
Assert.assertEquals(expected, actual, delta)
Alors que delta est la différence maximale (delta) entre les valeurs attendues et réelles pour laquelle les deux nombres sont toujours considérés comme égaux.
Assert.assertEquals(0.0012f, 0.0014f, 0.0002); // true
Assert.assertEquals(0.0012f, 0.0014f, 0.0001); //false
Une valeur delta de 0,0f fonctionne également, donc pour les comparaisons à l'ancienne "==" (à utiliser avec précaution!), Vous pouvez écrire
Assert.assertEquals(expected, actual, 0.0f);
au lieu de
Assert.assertEquals(expected, actual); // Deprecated
Assert.assertTrue(expected == actual); // Not JUnit
J'aime la façon dont JUnit garantit que vous avez vraiment pensé au "delta" qui ne devrait être que 0.0f dans des cas vraiment triviaux.