模擬 Facades

2018-02-24 15:52 更新

當(dāng)測(cè)試的時(shí)候,你或許常會(huì)想要模擬調(diào)用 Laravel 靜態(tài) facade。舉個(gè)例子,思考下面的控制器行為:

public function getIndex()
{
    Event::fire('foo', ['name' => 'Dayle']);

    return 'All done!';
}

我們可以在 facade 上使用 shouldReceive 方法,來(lái)模擬調(diào)用 Event 類,它將會(huì)返回一個(gè) Mockery mock 對(duì)象實(shí)例。
模擬 Facade

public function testGetIndex()
{
    Event::shouldReceive('fire')->once()->with('foo', ['name' => 'Dayle']);

    $this->call('GET', '/');
}

注意: 你不應(yīng)該模擬 Request facade。取而代之,當(dāng)執(zhí)行你的測(cè)試,傳遞想要的輸入數(shù)據(jù)進(jìn)去 call 方法。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)