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