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)? 此約束斷言數(shù)組擁有指定鍵名。
?PHPUnit\Framework\Constraint\TraversableContains contains(mixed $value)? 此約束斷言 ?array? 或?qū)崿F(xiàn)了 ?Iterator? 接口的對象包含有給定值。
?PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnly(string $type)? 此約束斷言 ?array ?或?qū)崿F(xiàn)了 ?Iterator ?接口的對象僅包含給定類型的值。
?PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnlyInstancesOf(string $classname)? 此約束斷言 ?array ?或?qū)崿F(xiàn)了 ?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)? 此約束斷言類具有給定靜態(tài)屬性。
?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)? 此約束斷言字符串以給定前綴開頭。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號