使用 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() 函數打印了正確的問候語。







