assertThat()

2018-02-24 15:42 更新

assertThat()

可以用 PHPUnit_Framework_Constraint 類來(lái)訂立更加復(fù)雜的斷言。隨后可以用 assertThat() 方法來(lái)評(píng)定這些斷言。Example?A.42, “assertThat() 的用法” 展示了如何用 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 指定。

Example?A.42.?assertThat() 的用法

<?php
class BiscuitTest extends PHPUnit_Framework_TestCase
{
    public function testEquals()
    {
        $theBiscuit = new Biscuit('Ginger');
        $myBiscuit  = new Biscuit('Ginger');

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

Table?A.1, “約束條件”列舉了所有可用的 PHPUnit_Framework_Constraint 類。

Table?A.1.?約束條件

約束條件 含義
PHPUnit_Framework_Constraint_Attribute attribute(PHPUnit_Framework_Constraint $constraint, $attributeName) 此約束將另外一個(gè)約束應(yīng)用于某個(gè)類或?qū)ο蟮哪硞€(gè)屬性。
PHPUnit_Framework_Constraint_IsAnything anything() 此約束接受任意輸入值。
PHPUnit_Framework_Constraint_ArrayHasKey arrayHasKey(mixed $key) 此約束斷言所評(píng)定的數(shù)組擁有指定鍵名。
PHPUnit_Framework_Constraint_TraversableContains contains(mixed $value) 此約束斷言所評(píng)定的 array 或?qū)崿F(xiàn)了 Iterator 接口的對(duì)象包含有給定值。
PHPUnit_Framework_Constraint_TraversableContainsOnly containsOnly(string $type) 此約束斷言所評(píng)定的 array 或?qū)崿F(xiàn)了 Iterator 接口的對(duì)象僅包含給定類型的值。
PHPUnit_Framework_Constraint_TraversableContainsOnly containsOnlyInstancesOf(string $classname) 此約束斷言所評(píng)定的 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_Attribute attributeEqualTo($attributeName, $value, $delta = 0, $maxDepth = 10) 此約束檢驗(yàn)一個(gè)值是否等于某個(gè)類或?qū)ο蟮哪硞€(gè)屬性。
PHPUnit_Framework_Constraint_FileExists fileExists() 此約束檢驗(yàn)所評(píng)定的文件名對(duì)應(yīng)的文件是否存在。
PHPUnit_Framework_Constraint_GreaterThan greaterThan(mixed $value) 此約束斷言所評(píng)定的值大于給定值。
PHPUnit_Framework_Constraint_Or greaterThanOrEqual(mixed $value) 此約束斷言所評(píng)定的值大于或等于給定值。
PHPUnit_Framework_Constraint_ClassHasAttribute classHasAttribute(string $attributeName) 此約束斷言所評(píng)定的類具有給定屬性。
PHPUnit_Framework_Constraint_ClassHasStaticAttribute classHasStaticAttribute(string $attributeName) 此約束斷言所評(píng)定的類具有給定靜態(tài)屬性。
PHPUnit_Framework_Constraint_ObjectHasAttribute hasAttribute(string $attributeName) 此約束斷言所評(píng)定的對(duì)象具有給定屬性。
PHPUnit_Framework_Constraint_IsIdentical identicalTo(mixed $value) 此約束斷言所評(píng)定的值與另外一個(gè)值全等。
PHPUnit_Framework_Constraint_IsFalse isFalse() 此約束斷言所評(píng)定的值為 FALSE
PHPUnit_Framework_Constraint_IsInstanceOf isInstanceOf(string $className) 此約束斷言所評(píng)定的對(duì)象是給定類的實(shí)例。
PHPUnit_Framework_Constraint_IsNull isNull() 此約束斷言所評(píng)定的值為 NULL。
PHPUnit_Framework_Constraint_IsTrue isTrue() 此約束斷言所評(píng)定的值為 TRUE。
PHPUnit_Framework_Constraint_IsType isType(string $type) 此約束斷言所評(píng)定的值是指定類型的。
PHPUnit_Framework_Constraint_LessThan lessThan(mixed $value) 此約束斷言所評(píng)定的值小于給定值。
PHPUnit_Framework_Constraint_Or lessThanOrEqual(mixed $value) 此約束斷言所評(píng)定的值小于或等于給定值。
logicalAnd() 邏輯與(AND)。
logicalNot(PHPUnit_Framework_Constraint $constraint) 邏輯非(NOT)。
logicalOr() 邏輯或(OR)。
logicalXor() 邏輯異或(XOR)。
PHPUnit_Framework_Constraint_PCREMatch matchesRegularExpression(string $pattern) 此約束斷言所評(píng)定的字符串匹配于正則表達(dá)式。
PHPUnit_Framework_Constraint_StringContains stringContains(string $string, bool $case) 此約束斷言所評(píng)定的字符串包含指定字符串。
PHPUnit_Framework_Constraint_StringEndsWith stringEndsWith(string $suffix) 此約束斷言所評(píng)定的字符串以給定后綴結(jié)尾。
PHPUnit_Framework_Constraint_StringStartsWith stringStartsWith(string $prefix) 此約束斷言所評(píng)定的字符串以給定前綴開(kāi)頭。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)