[英]I am looking for a way to test APIs on Laravel project with an API testing tool
[英]I am with problem to run test in project Laravel
我的測試 function 是這個
use RefreshDatabase;
public function create_route()
{
$user = \App\Models\User::factory()->create();
$this->actingAs($user)
->post(route('daily-logs.store'), [
'log' => 'Logging from create route test',
'day' => '2020-01-01',
]);
$this->assertDatabaseHas('daily_logs', [
'user_id' => $user->id,
'log' => 'Logging from create route test',
'day' => '2020-01-01 00:00:00',
]);
}
我的路線是這樣的:
Route::post('/daily-logs', [DailyLogController::class, 'store'])->name('daily-logs.store');
我的 controller 是這樣的:
public function store(Request $request)
{
return DailyLog::create([
'user_id'=> $request->user()->id,
'log'=> $request->log,
'day'=> $request->day,
]);
}
如果我使用帶有請求發布的瀏覽器訪問我的路由器,則工作已成功完成。 但是,如果我使用我的測試 function,則會顯示一條錯誤消息。
怎么了?
似乎從未執行過該操作。
在 Laravel 測試中創建對 HTTP 調用的斷言是一種很好的做法。
例如
$this->post(...)
->assertSuccessful(); // or assertRedirect(), assertStatus(), ...
這只會告訴您狀態代碼(例如 302 與成功狀態代碼不匹配)。
要調試,一種方法是轉儲響應:
$this->post(...)
->dump();
$fillable = ['log','day','user_id'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.