PHPUnit9.0 斷言-assertThat()

2022-03-24 10:26 更新
PHPUnit9.0 斷言集合PHPUnit9.0 斷言集合
可以用 ?PHPUnit\Framework\Constraint? 類來(lái)訂立更加復(fù)雜的斷言。隨后可以用 ?assertThat()? 方法來(lái)評(píng)定這些斷言。示例 1.61 展示了如何用 ?logicalNot()? 和 ?equalTo()? 約束條件來(lái)表達(dá)與 ?assertNotEquals()? 等價(jià)的斷言。

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

當(dāng) ?$value? 不符合約束條件 ?$constraint? 時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 ?$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? 接口的對(duì)象包含有給定值。
?PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnly(string $type)? 此約束斷言 ?array ?或?qū)崿F(xiàn)了 ?Iterator ?接口的對(duì)象僅包含給定類型的值。
?PHPUnit\Framework\Constraint\TraversableContainsOnly containsOnlyInstancesOf(string $classname)? 此約束斷言 ?array ?或?qū)崿F(xiàn)了 ?Iterator ?接口的對(duì)象僅包含給定類名的類的實(shí)例。
?PHPUnit\Framework\Constraint\IsEqual equalTo($value, $delta = 0, $maxDepth = 10)? 此約束檢驗(yàn)一個(gè)值是否等于另外一個(gè)。
?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)? 此約束斷言對(duì)象具有給定屬性。
?PHPUnit\Framework\Constraint\IsIdentical identicalTo(mixed $value)? 此約束斷言值與另外一個(gè)值全等。
?PHPUnit\Framework\Constraint\IsFalse isFalse()? 此約束斷言值是 false。
?PHPUnit\Framework\Constraint\IsInstanceOf isInstanceOf(string $className)? 此約束斷言對(duì)象是給定類的實(shí)例。
?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)? 此約束斷言字符串匹配于正則表達(dá)式。
?PHPUnit\Framework\Constraint\StringContains stringContains(string $string, bool $case)? 此約束斷言字符串包含指定字符串。
?PHPUnit\Framework\Constraint\StringEndsWith stringEndsWith(string $suffix)? 此約束斷言字符串以給定后綴結(jié)尾。
?PHPUnit\Framework\Constraint\StringStartsWith stringStartsWith(string $prefix)? 此約束斷言字符串以給定前綴開(kāi)頭。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)