У меня есть программа, в которую я загружаю свойства из файла. Когда свойство отсутствует в файле конфигурации в коде, я устанавливаю для свойства значение по умолчанию.
В тесте JUnit я проверяю, что если свойство не установлено, это значение является значением по умолчанию.
Мое свойство - это некоторое пороговое значение в миллисекундах, которое в виде строки преобразуется в double и в секунды. Значение по умолчанию 1000, поэтому 0,001 * 1000 = 1,0.
В моем коде у меня есть в основном это (я использую JUnit 4.8):
double defaultThreshold = 1.0;
double threshold = getThreshold();
Assert.assertEquals(0, Double.compare(defaultThreshold, threshold));
Я подумал, что может быть проблема с java-версией, но я попробовал это в Eclipse с Java 1.6, 1.7 и 1.8, и все прошло нормально в mvn. Я использую java 1.7.0_71, и это не сработало при сравнении с:
expected:<0> but was:<1>
Примечание. Double.compare возвращает 0, если оба числа равны.
https://www.tutorialspoint.com/java/lang/double_compare.htm
Этот метод возвращает значение 0, если d1 численно равно d2; значение меньше 0, если d1 численно меньше d2; и значение больше 0, если d1 численно больше, чем d2.