我需要比較兩個值之間的斷言:一個字符串,另一個是浮動 所以我轉換爲浮動然後嘗試撥打assertEquals(val1,val2)
繩子,但這個沒有被授權,我猜測,assertEquals
不接受float作爲參數。JUnit斷言:使花車
在這種情況下,我的解決方案是什麼?
我需要比較兩個值之間的斷言:一個字符串,另一個是浮動 所以我轉換爲浮動然後嘗試撥打assertEquals(val1,val2)
繩子,但這個沒有被授權,我猜測,assertEquals
不接受float作爲參數。JUnit斷言:使花車
在這種情況下,我的解決方案是什麼?
你必須爲浮動提供了一個三角洲斷言:
Assert.assertEquals(expected, actual, delta)
雖然Δ在最大差值(DELTA)預期與實際針對這兩個數字仍然被認爲是相等的。
Assert.assertEquals(0.0012f, 0.0014f, 0.0002); // true
Assert.assertEquals(0.0012f, 0.0014f, 0.0001); //false
0.0F的增量值也適用,因此對於老式的 「==」 比較(謹慎使用!),你可以寫
Assert.assertEquals(expected, actual, 0.0f);
,而不是
Assert.assertEquals(expected, actual); // Deprecated
Assert.assertTrue(expected == actual); // Not JUnit
我喜歡JUnit確保您真正考慮「delta」的方式,它在真正微不足道的情況下應該只有0.0f。
我建議使用0.0f(包括帶粗體文本的答案編輯)而不是其他語言,因爲它更具語義。我不知道這個問題,0.0f可能導致我理解什麼是打算。以不贊成的或「不是JUnit」的方式,它就不太明顯。 – ElMesa