PHPUnit\Framework\Constraint
? 類來訂立更加復雜的斷言。隨后可以用 ?assertThat()
? 方法來評定這些斷言。示例 1.61 展示了如何用 ?logicalNot()
? 和 ?equalTo()
? 約束條件來表達與 ?assertNotEquals()
? 等價的斷言。
當 ?$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) ? |
此約束斷言字符串以給定前綴開頭。 |
更多建議: