Тестирование границ в Java - PullRequest
0 голосов
/ 14 апреля 2011

Существуют ли какие-либо инструменты для практики JUnit или Java, которые позволяют точно тестировать граничные тесты типа «меньше чем» и «больше чем»?

Например, округлять денежные значения от половины до ближайшегоцент.Тестирование 0,005 раундов до 0,01 легко.Тестирование <0,005 округления вниз не является (строго говоря). </p>

Я, очевидно, могу проверить произвольное значение, например 0,0049, но это не гарантирует, что другое значение, например 0,00499, не будет округлено.Существует ли константа или что-либо, что гарантирует числовое значение, которое является наиболее близким возможным представлением к «меньше чем» или «больше чем» для среды, в которой выполняется?

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Math.nextAfter (0.005, 0) * * 1002

Возвращает число с плавающей точкой рядом с первым аргументом в Направление второго аргумента. Если оба аргумента сравниваются как равные возвращается второй аргумент.

http://download.oracle.com/javase/6/docs/api/java/lang/Math.html#nextAfter%28double,%20double%29

1 голос
/ 14 апреля 2011

Возможно, но это зависит от многих факторов.Для денежных значений вы всегда должны использовать BigDecimal, поскольку он дает вам полный контроль над точностью (например, double или float, что может давать странные результаты даже для простых значений)

...