В JUnit существует метод NO assert с сигнатурой
assertEquals(Double expected, Double result);
. Однако для объектов существует одно свойство:
assertEquals(Object expected, Object result);
Это вызывает метод equals
объектов, и, как вы можете ожидать, не рекомендуется использовать его для сравнения объектов Double
.
Для двойников, как вы заметили, абсолютно необходимо использовать delta для сравнения, чтобы избежать проблем с округлением с плавающей запятой (объяснено уже в некоторых других ответах). Если вы используете версию с тремя аргументами assertEquals
с double
аргументами
assertEquals(double expected, double actual, double delta);
, ваши Double
s будут беззвучно распаковываться в double
, и все будет нормально работать (и ваши тесты выиграли 't неожиданно: -).