2017-02-17 27 views
1

Использование в TestNG Assert.assertEquals(double expected, double actual, double delta), что было бы хорошее число, чтобы использовать для дельты, используя следующие номера (утверждение не удалась, поскольку не существует дельта)TestNG AssertEquals double - хорошее количество, чтобы поставить на двойной?

AssertionError: expected [121.97] but found [121.96999999999998] 

Я попытался с помощью 1, .01 и .001, но все три прошло. Я хочу, чтобы учет за успех был очень маленьким (другими словами, если «фактические цифры» (с моей точки зрения в любом случае) были 121,97 и 121,96, я хочу, чтобы тест не сработал. Спасибо!

ответ

2

Если вы хотите ваш тест на провал для 121.97 и 121.96 ... попробуйте использовать дельту, которая меньше, чем
|121.97 - 121.96| = 0.01
Как насчет:.

final double DELTA = 0.001; 
assertEquals(121.97, 121.96, DELTA); 

Выход:

java.lang.AssertionError: expected [121.96] but found [121.97] 
Expected :121.96 
Actual :121.97 

В общем случае ... если вы хотите, чтобы ваше утверждение потерпело неудачу для a и b,
использование дельта, которое меньше |a - b|.