۱۵ سینا علیزاده
ارور 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@

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