PHP 和带有小数的单元测试断言

2022-08-30 13:33:27

我有一个返回浮点数的方法,如1.234567890.我想测试它是否真的这样做。但是,似乎此返回的浮点数在不同平台上具有不同的精度,因此我如何断言返回值为1.23456789?如果我只是做:

$this->assertEqual(1.23456789, $float);

然后,在某些精度不够的平台上,这可能会失败。


答案 1

到目前为止,还没有提到 assertEquals 通过提供特定精度的增量来支持比较浮点数:

$this->assertEquals(1.23456789, $float, '', 0.0001);

感谢@Antoine87指出既然 phpunit 7.5,你应该使用:assertEqualsWithDelta()

$this->assertEqualsWithDelta(1.23456789, $float, 0.0001);

答案 2

作为@bernhard-wagner答案的更新,您现在应该使用phpunit 7.5assertEqualsWithDelta()

$this->assertEqualsWithDelta(1.23456789, $float, 0.0001);

推荐