استفاده از assertInvalidCredentials در لاراول ۱۱

laravel 11 assert invalid credentials
03 تیر 1404

توضیحات درباره متد assertInvalidCredentials در لاراول ۱۱


متد assertInvalidCredentials() در لاراول ۱۱ برای تست اعتبارسنجی ویژگی‌های احراز هویت در تست‌های واحد ما طراحی شده است. وقتی شما در حال نوشتن تست برای روش‌های احراز هویت خود هستید، این متد به شما کمک می‌کند تا اطمینان حاصل کنید که وقتی کاربری با اطلاعات نامعتبر سعی در ورود به سیستم داشته باشد، سیستم به درستی آن را شناسایی می‌کند.


این متد بسیار مفید است چراکه به برنامه نویسان اجازه می‌دهد تا سناریوهای مختلف ورود به سیستم را تست کنند و از درستی رفتار سیستم مطمئن شوند. به طور مثال، می‌توانید تست کنید که اگر کاربر نام کاربری یا رمز عبور اشتباهی وارد کند، آیا پیام خطای مناسبی نمایش داده می‌شود یا خیر.


نحوه استفاده از این متد بسیار ساده است و شما فقط کافی است آن را به همراه اطلاعات نامعتبر در متد تست خود فراخوانی کنید. سپس می‌توانید از آن انتظار داشته باشید که فرایند ورود ناموفق باشد و خطای مناسب را مشاهده کنید.


برای اینکه بیشتر با این متد آشنا شوید، بیایید یک مثال عملی از نحوه استفاده از آن را بررسی کنیم. به این ترتیب نه تنها با طرز کار این متد آشنا می‌شوید، بلکه با نوشتن تست‌های قوی‌تر برای احراز هویت در لاراول ۱۱ نیز آشنا می‌شوید.


public function test_user_cannot_login_with_invalid_credentials()
{
$this->post('/login', [
'email' => '[email protected]',
'password' => 'incorrectpassword'
])->assertInvalidCredentials();
}

توضیحات کد


در اینجا یک روش تست قرار دارد که مشخص می‌کند کاربر نمی‌تواند با اطلاعات نامعتبر وارد سیستم شود.



خط ۱: public function test_user_cannot_login_with_invalid_credentials()
این خط مشخص می‌کند که ما یک تست جدید به نام test_user_cannot_login_with_invalid_credentials تعریف کرده‌ایم.


خط ۲: $this->post('/login', [...])
با استفاده از متد post یک درخواست به آدرس /login ارسال می‌کنیم.


خط ۳: 'email' => '[email protected]'
ایمیل نامعتبر را برای ورود به سیستم ارسال می‌کنیم.


خط ۴: 'password' => 'incorrectpassword'
همچنین رمز عبور اشتباهی را نیز ارسال می‌کنیم.


خط ۵: ->assertInvalidCredentials();
این خط پیش‌بینی می‌کند که اعتبارسنجی کاربران بر اساس اطلاعات ارسال شده نامعتبر باشد و خطای مناسب را نشان دهد.


سوالات متداول

؟

متد assertInvalidCredentials چیست؟

؟

چگونه می‌توان از assertInvalidCredentials در تست‌های واحد استفاده کرد؟

؟

چه زمانی باید از assertInvalidCredentials استفاده کنیم؟