📜  PHPUnit assertFinite()函数(1)

📅  最后修改于: 2023-12-03 15:03:44.667000             🧑  作者: Mango

PHPUnit assertFinite() 函数

PHPUnit 是 PHP 语言的一个单元测试框架,其中 assertFinite() 是 PHPUnit 提供的一个用于判断给定值是否为有限数字的断言函数。

函数签名
assertFinite(mixed $actual, string $message = '')
  • $actual:需要进行判断的值,可以是任何 PHP 原始类型和对象。
  • $message:可选参数,当断言失败时输出的错误信息。
功能

assertFinite() 函数用于检查给定值是否为有限数字,如果不是,则会引发 PHPUnit\Framework\ExpectationFailedException 异常。

具体来说,如果 $actual 的值满足以下条件之一,则断言成功:

  • $actual 是一个整数或一个浮点数。
  • $actual 是一个字符串,其值与一个整数或浮点数相等。
  • $actual 是一个对象,其 __toString() 方法的返回值表示的数字是有限的。
  • $actualnull

否则,断言失败,并输出 $message 指定的错误信息。

示例
public function testAssertFinite() {
    // 断言成功
    $this->assertFinite(1);
    $this->assertFinite(3.14);
    $this->assertFinite((string)42);
    $this->assertFinite(null);

    // 断言失败
    $this->assertFinite(INF, 'Failed asserting that INF is finite.');
    $this->assertFinite(-INF, 'Failed asserting that -INF is finite.');
    $this->assertFinite(NAN, 'Failed asserting that NAN is finite.');
    $this->assertFinite('not a number', 'Failed asserting that "not a number" is finite.');
    $this->assertFinite(fopen(__FILE__, 'r'), 'Failed asserting that resource is finite.');
    $this->assertFinite(new stdClass, 'Failed asserting that object is finite.');
}

上述示例中,我们使用 $this->assertFinite() 进行了一些测试:

  • 对于整数、浮点数、字符串形式的数字和 null,断言成功。
  • 对于无限大或非数、资源或对象,断言失败,并输出指定的错误信息。

需要注意的是,在上述示例中我们使用了 PHPUnit 要求的测试命名规则,即以 test 开头的方法名。建议开发者在自己的测试用例中也遵循此规则,以保持代码的可读性和可维护性。

参考文献