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

公众号
微信公众号

编程狮公众号