W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
編寫自定義斷言時(shí),最佳實(shí)踐是遵循 PHPUnit 自有斷言的實(shí)現(xiàn)方式。正如 Example?14.1, “PHPUnit_Framework_Assert 類的 assertTrue() 與 isTrue() 方法”中所示,assertTrue()
方法只是對 isTrue()
和 assertThat()
方法的外包覆:isTrue()
創(chuàng)建了一個(gè)匹配器對象,將其傳遞給 assertThat()
進(jìn)行評定。
Example?14.1.?PHPUnit_Framework_Assert 類的 assertTrue() 與 isTrue() 方法
<?php
abstract class PHPUnit_Framework_Assert
{
// ...
/**
* 斷言某個(gè)條件為真。
*
* @param boolean $condition
* @param string $message
* @throws PHPUnit_Framework_AssertionFailedError
*/
public static function assertTrue($condition, $message = '')
{
self::assertThat($condition, self::isTrue(), $message);
}
// ...
/**
* 返回一個(gè) PHPUnit_Framework_Constraint_IsTrue 匹配器對象
*
* @return PHPUnit_Framework_Constraint_IsTrue
* @since Method available since Release 3.3.0
*/
public static function isTrue()
{
return new PHPUnit_Framework_Constraint_IsTrue;
}
// ...
}?>
Example?14.2, “PHPUnit_Framework_Constraint_IsTrue 類”展示了 PHPUnit_Framework_Constraint_IsTrue
是如何擴(kuò)展針對匹配器對象(或約束)的抽象基類 PHPUnit_Framework_Constraint
的。
Example?14.2.?PHPUnit_Framework_Constraint_IsTrue 類
<?php
class PHPUnit_Framework_Constraint_IsTrue extends PHPUnit_Framework_Constraint
{
/**
* 對參數(shù) $other 進(jìn)行約束評定。如果符合約束,
* 返回 TRUE,否則返回 FALSE。
*
* @param mixed $other Value or object to evaluate.
* @return bool
*/
public function matches($other)
{
return $other === TRUE;
}
/**
* 返回代表此約束的字符串。
*
* @return string
*/
public function toString()
{
return 'is true';
}
}?>
在實(shí)現(xiàn) assertTrue()
和 isTrue()
方法及 PHPUnit_Framework_Constraint_IsTrue
類時(shí)所付出的努力帶來了一些好處,assertThat()
能夠自動負(fù)責(zé)起斷言的評定與任務(wù)簿記(例如為了統(tǒng)計(jì)目的而對其進(jìn)行計(jì)數(shù))工作。此外, isTrue()
方法還可以在配置仿件對象時(shí)用來作為匹配器。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: