Laravel 8 注入請求

2021-07-19 10:43 更新

在偽造響應(yīng)時,你可能希望檢查客戶端收到的請求,以確保你的應(yīng)用發(fā)送了正確的數(shù)據(jù)或請求頭。你可以在調(diào)用 Http::fake 方法后調(diào)用 Http::assertSent 來完成該操作。
assertSent 方法接受一個回調(diào),該回調(diào)將接受一個 Illuminate\Http\Client\Request 實(shí)例,并返回一個布爾值。該值用于確認(rèn)該響應(yīng)是否符合你的期望。為了使測試通過,必須至少發(fā)出一個與給定期望相符的請求:

Http::fake();

Http::withHeaders([
    'X-First' => 'foo',
])->post('http://test.com/users', [
    'name' => 'Taylor',
    'role' => 'Developer',
]);

Http::assertSent(function ($request) {
    return $request->hasHeader('X-First', 'foo') &&
           $request->url() == 'http://test.com/users' &&
           $request['name'] == 'Taylor' &&
           $request['role'] == 'Developer';
}); 

如有需要,你可以使用 assertNotSent 方法斷言未被發(fā)送的請求:

Http::fake();

Http::post('http://test.com/users', [
    'name' => 'Taylor',
    'role' => 'Developer',
]);

Http::assertNotSent(function (Request $request) {
    return $request->url() === 'http://test.com/posts';
}); 

也可以使用 assertNothingSent 方法斷言空的請求:

Http::fake();

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號