使用 prophecy 擴展 php 函數可通過以下步驟實現:使用 composer 安裝 prophecy。使用 prophesize() 方法創建樁對象。使用 will() 方法配置樁對象的行為。使用 shouldhavebeencalled() 方法驗證樁對象是否已被調用。
如何使用 Prophecy 擴展 PHP 函數?
Prophecy 是 PHP 中一個靈活且強大的樁框架。它允許您輕松地創建樁對象,這些對象可以用于測試目的而不會實際修改正在測試的代碼。
安裝 Prophecy
首先,使用 Composer 安裝 Prophecy:
composer require prophecy/prophecy
登錄后復制
創建樁對象
要創建樁對象,請使用 prophesize()
方法:
$stub = $prophecy->prophesize();
登錄后復制
此代碼將創建一個樁對象,該對象充當未指定的類或接口。
配置樁對象
接下來,您可以使用 will()
方法配置樁對象的行為。例如,要配置 getName()
方法返回 “John Doe”,請使用:
$stub->getName()->willReturn('John Doe');
登錄后復制
驗證調用
要驗證樁對象是否已被調用,可以使用 shouldHaveBeenCalled()
方法:
$stub->getName()->shouldHaveBeenCalled();
登錄后復制
實戰案例
假設我們有一個函數 greet()
,它接受一個名稱參數并打印一條問候信息。
function greet($name) { echo "Hello, $name!"; }
登錄后復制
我們可以使用 Prophecy 創建一個樁對象來測試 greet()
函數:
use Prophecy\Prophet; class GreetTest extends PHPUnit_Framework_TestCase { public function testGreet() { $prophet = new Prophet; $stub = $prophet->prophesize(); $stub->getName()->willReturn('John Doe'); greet($stub->reveal()); $stub->getName()->shouldHaveBeenCalled(); } }
登錄后復制
此測試確保 getName()
方法已被調用,并且 greet()
函數打印了正確的問候語。