🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۵ یگانه سیف
ارور Failed asserting
جامعه پی اچ پی ایجاد شده در ۲۴ فروردین ۱۴۰۲

استاد من علت این ارور رو درک نمیکنم:

7573-Screenshot 2023-04-14 040924.jpg

من از assertion استفاده نکردم!!

سلام سینا عزیز

به طور کلی، پیغام خطا مربوط به تست،

"Throws exception if config is invalid"

می‌باشد.

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

./vendor/bin/phpunit --filter testMethodName

که در آن testMethodName نام متد کلاس تست مورد نظر شما می‌باشد. که در اینجا متد سوم تست شما طبق علامت‌های مربوطه به مشکل خورده.با اجرای این دستور، شما می‌توانید خطای دقیق‌تری را ببینید که شامل نام تست، خط خطا و پیغام خطا می‌باشد. پس از شناسایی مشکل، باید آن را برطرف کنید و تست را مجدداً اجرا کنید تا مطمئن شوید که هیچ خطایی وجود ندارد.

آریانا کرمانی ۲۵ فروردین ۱۴۰۲، ۰۸:۰۰

استاد هنوز هم اون ارور رو دارم.

کل طابع تو از اول نوشتم اما هنوز مشکل داره.


امکانش هست کد رو بهتون بدم ایرادش رو بهم بگید؟

یگانه سیف ۲۵ فروردین ۱۴۰۲، ۱۱:۵۴

کد تست و مواردی که در تست استفاده شده اسکرین بدید.

آریانا کرمانی ۲۵ فروردین ۱۴۰۲، ۱۳:۱۷

da20-Screenshot 2023-04-15 065518.jpg


استاد دیگه چی رو بفرستم؟

یگانه سیف ۲۶ فروردین ۱۴۰۲، ۰۲:۲۶

سینا عزیز

برای موفق شدن تست شما باید در متد getconfig یک نوع از exeption لاین قبل رو throw کنید تا expect شده بشه.

چون ما داریم میگیم بررسی کنه این خطا پرتاب میشه یا نه.

در متد get configs:

throw new DatabaseConnectionException('error');


آریانا کرمانی ۲۶ فروردین ۱۴۰۲، ۱۹:۳۸

استاد بازم رفع نشد?

یگانه سیف ۲۶ فروردین ۱۴۰۲، ۲۳:۰۹

بررسی شد اوکی بود

فایل تست پیوست شد.

لاین هایی که کامنت شده هم میتونید بجای throw کردن قبل متغیر config بررسی کنید اما برای هندل شدن ارور موارد کامنتی باید هندل رو انجام بدید.

آریانا کرمانی ۲۷ فروردین ۱۴۰۲، ۱۷:۱۵

مرسی استاد بابت عیب یابی.


ولی میشه یکم بیشتر توضیح بدید چون نتونستم درست متوجه بشم

یگانه سیف ۲۷ فروردین ۱۴۰۲، ۱۷:۲۰

زمانی که ما از متد expect exeption استفاده میکنیم میگیم که اکر در دستور بعدی این اکسپشن اتفاق افتاد اوکی بده.

مثلا:

public function testAppThrowExeptionOnSendEmptyRequestForUpdateUser(){
$this->expectExeption(\\Exeption::class);
if(!$this->sendRequest()->status)
   throw new \\Exeption();
}
private function sendRequest(){
return Request::post(app()->url.'api/v1/users/create');
}


در کد بالا ما داریم میگیم که اگر ریکوئست بدون دیتا برای ایجاد کاربر ارسال شد طبق وب سرویس استاتوس صفر برگردونده بشه و ما هم در متد sendRequest یک درخواست بدون دیتا ارسال کردیم به api؛اگر صفر برگشت اکسپشن ترو بشه و طبق این تست اوکی میشه.

آریانا کرمانی ۲۷ فروردین ۱۴۰۲، ۱۹:۲۱

استاد ممنون بابت این پارت از توضیحات.


اما هنوز نتیجه تست فیلد میشه

یگانه سیف ۲۷ فروردین ۱۴۰۲، ۱۹:۲۹

جایی رو اشتباه کردید

فایلی که پیوست کردم جایگزین کنید با تست خودتون.

آریانا کرمانی ۲۷ فروردین ۱۴۰۲، ۲۰:۳۱

بله اما بازم ارور میده

کدها رو هم از کامنت در آوردم بازم ارور داد

یگانه سیف ۲۷ فروردین ۱۴۰۲، ۲۲:۴۵

سینا عزیز

پروژه ای که من تغییرش دادم پیوست شد.

a9de-Screenshot (25).png

آریانا کرمانی ۲۸ فروردین ۱۴۰۲، ۱۶:۱۶

استاد امکانش هست در تلگرام بهتون پیام بدم؟

یگانه سیف ۲۸ فروردین ۱۴۰۲، ۱۶:۱۷

آیدی:

ahmadreza_fatemikia@

بهترین پاسخ
آریانا کرمانی ۲۸ فروردین ۱۴۰۲، ۱۶:۵۱