۴ سینا علیزاده
ارور Failed asserting that null is not null
جامعه پی اچ پی ایجاد شده در ۰۹ خرداد ۱۴۰۲

استاد ما تو این جلسه قسمت Delete رو کامل کردیم ولی الان ارور از قسمت Update میاد :

986c-Screenshot 2023-05-30 153927.jpg

اینم کدی که بهش خطا گرفته :

abf3-Screenshot 2023-05-30 154202.jpg

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

اروری که گرفته شده از این هست که مقدار نال برگشته و باید نتیجه کوئری رو بررسی کنی که آیا در دیتابیس این مورد وجود داره یا خیر.

احتمالا در متد دیلیت این آیدی حذف شده.

متد آپدیت رو قبل از دیلیت بنویسید یا یک متد ایجاد باگ بنویسید و متد آپدیت رو depend به اون کنید یا در متد setup که اول از همه تست‌ها اجرا میشه اون رو فراخونی کنید اما روش اول ساده‌تر هست.

use PHPUnit\\Framework\\TestCase;
class MyTest extends TestCase
{
    public function setUp(): void
    {
        // This method will be executed before every test method
        // Add your setup code here
    }
    public function testMethodA(): void
    {
        // Your test for method A
    }
    /**
     * @depends testMethodA
     */
    public function testMethodB(): void
    {
        // Your test for method B, which depends on the successful execution of testMethodA
    }
}


احمدرضا فاطمی کیا ۰۹ خرداد ۱۴۰۲، ۱۲:۵۵

استاد همین الانش هم متد آپدیت قبل از دیلیت نوشته شده ولی بازم همونه.

من کد‌های استاد رو هم تست کردم ولی ارور میده بعضا تست هم پاس میشه ولی دوباره به ارور میخوره

سینا علیزاده ۰۹ خرداد ۱۴۰۲، ۱۳:۴۳

آیا مشکل ربطی ترتیب اجرای تست‌ها داره ؟؟

سینا علیزاده ۰۹ خرداد ۱۴۰۲، ۱۳:۴۹

کدهای این قسمت رو که دیدم این متوجه شدم

موردی که هست شما میاید ابتدا دیتا ایجاد میکنید مثلا با نام api و بعد آپدیتش میکنید به نام دیگه...

بعد میاید یک دیتای دیگه ایجاد و اونو حذف میکنید.

و اینجا تکلیف اون دیتای قبلی معلوم نیست.

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

در متد tear down یک کوئری برای پاک کردن کل اطلاعات جدول بنویسید یا در متد دیلیت بیاید مثل ایجاد کردن دیتای آپدیت شده رو با دیپند کردن بگیرید و اونو دیلیت کنید.

احمدرضا فاطمی کیا ۰۹ خرداد ۱۴۰۲، ۱۸:۳۲