W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
當模擬一個對象將通過 Laravel 的服務容器注入到應用中時,你將需要將模擬實例作為 instance
綁定到容器中。這將告訴容器使用對象的模擬實例,而不是構造對象的真身:
use App\Service;
use Mockery;
$this->instance(Service::class, Mockery::mock(Service::class, function ($mock) {
$mock->shouldReceive('process')->once();
}));
為了讓以上過程更加便捷,你可以使用 Laravel 的基本測試用例類提供 mock
方法:
use App\Service;
$this->mock(Service::class, function ($mock) {
$mock->shouldReceive('process')->once();
});
當你只需要模擬對象的幾個方法時,可以使用 partialMock
方法。 未被模擬的方法將在調用時正常執(zhí)行:
use App\Service;
$this->partialMock(Service::class, function ($mock) {
$mock->shouldReceive('process')->once();
});
同樣,如果你想偵查一個對象,Laravel 的基本測試用例類提供了一個便捷的 spy
方法作為 Mockery::spy
的替代方法:
use App\Service;
$this->spy(Service::class, function ($mock) {
$mock->shouldHaveReceived('process');
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: