Как я могу проверить равенство с плавающей запятой, используя chai?
Мы используем Chai BDD API для написания модульных тестов.
Как мы можем утверждать равенство с плавающей запятой?
Например, если я попытаюсь сделать это утверждение для проверки возвращаемого значения 66%:
expect(percentage).to.equal(2 / 3 * 100.0);
Я получаю этот отказ:
AssertionError: expected 66.66666666666667 to equal 66.66666666666666
Expected :66.66666666666666
Actual :66.66666666666667
Ответы
Ответ 1
Я тоже искал это, и кроме этого вопроса я также нашел эту дискуссию в отношении запроса функции, который привел к добавлению closeTo
. С этим вы можете указать значение и +/- delta, поэтому в основном это позволяет указать точность проверки результата.
percentage.should.be.closeTo(6.666, 0.001);
Это не идеально, конечно, потому что это одобрит любое число от 6.665 до 6.667.
Ответ 2
Утверждение within
может использоваться для проверки того, близко ли число с плавающей запятой к его предполагаемому результату:
expect(percentage).to.be.within(66.666, 66.667);