Примитивный тип double
не имеет метода equals
. Кроме того, значения double
не являются точными (они являются приблизительными) и не должны сравниваться с оператором ==
. Объединяя эти две идеи, вы можете протестировать double
значения в JUnit, используя:
assertEquals(200.0, Taxtime.calculateFamilyTaxSaving(taxAmount, familyMembers), 0.0001);
Обратите внимание, что JUnit считает первый параметр ожидаемым, поэтому сначала следует использовать литерал 200.0
(ожидаемое значение).
Последнее значение (0.0001
) является пороговым. Это говорит о том, что до тех пор, пока первые два значения отличаются меньше или равны пороговому значению, первые два значения считаются равными. Чтобы быть точным, порог определяется как:
threshold such that abs(value1 - value2) <= threshold
Результирующий контрольный пример должен быть:
@Test
static void stattestCalculateFamilyTaxSaving() {
TaxTime taxtime = new TaxTime();
double taxAmount = 600;
int familyMembers = 3;
assertEquals(200.0, Taxtime.calculateFamilyTaxSavings(taxAmount, familyMembers), 0.0001);
}
Обратите внимание, что Taxtime.calculateFamilyTaxSaving
равен static
и должен вызываться static
(используйте имя класса, а не имя объекта).