PHPUnit9.0 断言-assertThat()

2022-03-24 10:26 更新
PHPUnit9.0 断言集合PHPUnit9.0 断言集合
可以用 ​PHPUnit\Framework\Constraint​ 类来订立更加复杂的断言。随后可以用 ​assertThat()​ 方法来评定这些断言。示例 1.61 展示了如何用 ​logicalNot()​ 和 ​equalTo()​ 约束条件来表达与 ​assertNotEquals()​ 等价的断言。

assertThat(mixed $value, PHPUnit\Framework\Constraint $constraint[, $message = ''])

当 ​$value​ 不符合约束条件 ​$constraint​ 时报告错误,错误讯息由 ​$message​ 指定。

示例 1.61 assertThat() 的用法

<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class BiscuitTest extends TestCase
{
    public function testEquals(): void
    {
        $theBiscuit = new Biscuit('Ginger');
        $myBiscuit  = new Biscuit('Ginger');

        $this->assertThat(
          $theBiscuit,
          $this->logicalNot(
            $this->equalTo($myBiscuit)
          )
        );
    }
}

表格 1.1 列举了所有可用的 PHPUnit\Framework\Constraint 类。

表格 1.1约束条件

约束条件 含义
​PHPUnit\Framework\Constraint\IsAnything anything()​ 此约束接受任意输入值。
​PHPUnit\Framework\Constraint\ArrayHasKey arrayHasKey(mixed $key)​ 此约束断言数组拥有指定键名。
​PHPUnit\Framework\Constraint\TraversableContains contains(mixed $value)​ 此约束断言 ​array​ 或实现了 ​Iterator​ 接口的对象包含有给定值。
​PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnly(string $type)​ 此约束断言 ​array ​或实现了 ​Iterator ​接口的对象仅包含给定类型的值。
​PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnlyInstancesOf(string $classname)​ 此约束断言 ​array ​或实现了 ​Iterator ​接口的对象仅包含给定类名的类的实例。
​PHPUnit\Framework\Constraint\IsEqual equalTo($value, $delta = 0, $maxDepth = 10)​ 此约束检验一个值是否等于另外一个。
​PHPUnit\Framework\Constraint\DirectoryExists directoryExists()​ 此约束检查目录是否存在。
​PHPUnit\Framework\Constraint\FileExists fileExists()​ 此约束检查文件(名)是否存在。
​PHPUnit\Framework\Constraint\IsReadable isReadable()​ 此约束检查文件(名)是否可读。
​PHPUnit\Framework\Constraint\IsWritable isWritable()​ 此约束检查文件(名)是否可写。
​PHPUnit\Framework\Constraint\GreaterThan greaterThan(mixed $value)​ 此约束断言值大于给定值。
​PHPUnit\Framework\Constraint\LogicalOr greaterThanOrEqual(mixed $value)​ 此约束断言值大于或等于给定值。
​PHPUnit\Framework\Constraint\ClassHasAttribute classHasAttribute(string $attributeName)​ 此约束断言类具有给定属性。
​PHPUnit\Framework\Constraint\ClassHasStaticAttribute classHasStaticAttribute(string $attributeName)​ 此约束断言类具有给定静态属性。
​PHPUnit\Framework\Constraint\ObjectHasAttribute objectHasAttribute(string $attributeName)​ 此约束断言对象具有给定属性。
​PHPUnit\Framework\Constraint\IsIdentical identicalTo(mixed $value)​ 此约束断言值与另外一个值全等。
​PHPUnit\Framework\Constraint\IsFalse isFalse()​ 此约束断言值是 false。
​PHPUnit\Framework\Constraint\IsInstanceOf isInstanceOf(string $className)​ 此约束断言对象是给定类的实例。
​PHPUnit\Framework\Constraint\IsNull isNull()​ 此约束断言值是 null。
​PHPUnit\Framework\Constraint\IsTrue isTrue()​ 此约束断言值是 true。
​PHPUnit\Framework\Constraint\IsType isType(string $type)​ 此约束断言值是指定的类型。
​PHPUnit\Framework\Constraint\LessThan lessThan(mixed $value)​ 此约束断言值小于给定值。
​PHPUnit\Framework\Constraint\LogicalOr lessThanOrEqual(mixed $value)​ 此约束断言值小于或等于给定值。
​logicalAnd()​ 逻辑与(AND)。
​logicalNot(PHPUnit\Framework\Constraint $constraint)​ 逻辑非(NOT)。
​logicalOr()​ 逻辑或(OR)。
​logicalXor()​ 逻辑异或(XOR)。
​PHPUnit\Framework\Constraint\PCREMatch matchesRegularExpression(string $pattern)​ 此约束断言字符串匹配于正则表达式。
​PHPUnit\Framework\Constraint\StringContains stringContains(string $string, bool $case)​ 此约束断言字符串包含指定字符串。
​PHPUnit\Framework\Constraint\StringEndsWith stringEndsWith(string $suffix)​ 此约束断言字符串以给定后缀结尾。
​PHPUnit\Framework\Constraint\StringStartsWith stringStartsWith(string $prefix)​ 此约束断言字符串以给定前缀开头。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号