W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Prophecy 是個(gè)“極為自我卻又非常強(qiáng)大且靈活的 PHP 對(duì)象模仿框架。雖然一開始是為了滿足 phpspec2 的需要而建立的,但它足夠靈活,可以用最小代價(jià)用于任何測(cè)試框架內(nèi)?!?/p>
從版本 4.5 開始,PHPUnit 為用 Prophecy 建立測(cè)試替身提供了內(nèi)建支持。Example?9.17, “測(cè)試某個(gè)方法會(huì)以特定參數(shù)被調(diào)用一次”展示了Example?9.11, “測(cè)試某個(gè)方法會(huì)以特定參數(shù)被調(diào)用一次”中展示的測(cè)試應(yīng)該如何用 Prophecy 的的預(yù)言式理念方式來(lái)達(dá)到同樣的效果:
Example?9.17.?測(cè)試某個(gè)方法會(huì)以特定參數(shù)被調(diào)用一次
<?php
class SubjectTest extends PHPUnit_Framework_TestCase
{
public function testObserversAreUpdated()
{
$subject = new Subject('My subject');
// 為 Observer 類建立預(yù)言(prophecy)。
$observer = $this->prophesize('Observer');
// 建立預(yù)期狀況:update() 方法將會(huì)被調(diào)用一次,
// 并且將以字符串 'something' 為參數(shù)。
$observer->update('something')->shouldBeCalled();
// 揭示預(yù)言,并將仿件對(duì)象鏈接到主體上。
$subject->attach($observer->reveal());
// 在 $subject 對(duì)象上調(diào)用 doSomething() 方法,
// 預(yù)期將以字符串 'something' 為參數(shù)調(diào)用
// Observer 仿件對(duì)象的 update() 方法。
$subject->doSomething();
}
}
?>
更多關(guān)于如何用這個(gè)測(cè)試替身框架來(lái)創(chuàng)建、配置及使用樁件、諜件、仿件的細(xì)節(jié),請(qǐng)參考 Prophecy 的 文檔。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: