آشنایی با TestResponse::assertRedirectToRoute() در لاراول ۱۱
سلام دوستان! تو این مطلب میخواهیم دربارهی یک ویژگی قشنگ توی لاراول ۱۱ صحبت کنیم که میتونه تو تستهای شما خیلی به درد بخوره: TestResponse::assertRedirectToRoute(). شاید وقتی که شما به عنوان یک توسعهدهنده وب با لاراول کار میکنید، انتظار داشته باشید که برنامهاتون بعد از یک عملیات خاص، به کدوم مسیر از وبسایت ریدایرکت بشه. حالا لاراول این کار رو برای شما آسان کرده و شما میتونید به راحتی با تستهای خودتون این قضیه رو چک کنید.
این متد توی تاییدیههایی که تستهای شما انجام میدن، کار میکنه. به این معنا که وقتی شما بخواید بدونید آیا بعد از یک درخواست خاص، برای کاربر به مسیر درست ریدایرکت شده یا نه، میتونید از این متد استفاده کنید. این موضوع به شما کمک میکنه تا مطمئن بشید که منطق ریدایرکت شما به درستی کار میکنه و کاربرها به مسیر مورد نظر هدایت میشن.
برای استفاده از این متد، معمولاً باید بعد از انجام یک درخواست، از TestResponse
استفاده کنید. به عنوان مثال، ممکنه شما بخواید بررسی کنید که اگر کاربر یک فرم رو درست پر کرده، به صفحهی موفقیت هدایت بشه. اینجاست که assertRedirectToRoute()
به کمک شما میاد و به شما اجازه میده تا به راحتی این مسأله رو تست کنید.
حالا بریم سراغ یک مثال ساده. فرض کنید یک فرم داریم که کاربر با پر کردنش روش ریدایرکت میشه به یک صفحه خاص. ما میخوایم مطمئن بشیم که آیا بعد از پر کردن این فرم به درستترین مسیر هدایت میشه یا نه. در کد زیر این کار رو انجام میدیم.
$response = $this->post('/submit-form', [$data]);
$response->assertRedirectToRoute('success.page');
توضیح کد
حالا بیایید کد رو با هم خط به خط بررسی کنیم.
تخصیص $response
در این خط، یک متغیر به نام $response
تعریف کردیم که نتیجهی درخواست POST
به مسیر /submit-form
رو در خودش داره. ما $data
رو به عنوان پارامتر به این درخواست ارسال کردیم.
بررسی ریدایرکت
در این خط، از متد assertRedirectToRoute
استفاده کردیم تا بررسی کنیم که آیا پاسخ به درستی به مسیر success.page
ریدایرکت شده یا نه.