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

سلام وقتی که میخواستم این متد تست کنم به خطا میخورم

public function testItCanFetchSpecificColumns()
    {
        $this->multipleInsertIntoDb(10);
        $this->multipleInsertIntoDb(10,['name'=>'New']);
        $result = $this->queryBuilder
             ->table('bugs')
             ->where('name','New')
             ->get(['name','user']);
        $this->assertIsArray($result);
        $this->assertObjectHasAttribute('name',$result[0]);
        $this->assertObjectHasAttribute('user',$result[0]);
        $result = json_decode(json_encode($result[0]),true);
        $this->assertEquals(['name','user'],array_keys($result));
    }
#  Error  
1) Tests\\Unit\\PDOQueryBuilderTest::testItCanFetchSpecificColumns
Error: Call to undefined method Tests\\Unit\\PDOQueryBuilderTest::assertObjectHasAttribute()

چیزی که متوجه شدم تو phpunit 10 این متد‌ها حذف شده الان به جای این متد باید چه چیزی رو جایگزین کنیم ؟


آقای بهپور فریاد ۰۷ فروردین ۱۴۰۲، ۱۱:۳۲

مشکل حل شد

باید به این صورت استفاده کرد

$this->assertTrue(property_exists($result[0],'name'));
$this->assertTrue(property_exists($result[0],'user'));
آقای بهپور فریاد ۰۷ فروردین ۱۴۰۲، ۱۱:۳۷

سلام امیرعزیز

برای رفع این مشکل، می‌توانید به شکل زیر این مورد را بررسی کنید.

در نسخه ۱۰ این متدها که استفاده کردید منسوخ شده.

$this->assertTrue(property_exists($result[0],'name'));
$this->assertTrue(property_exists($result[0],'user'));


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

کدی که دادید رو تست کردم بازم خطا داد .

1) Tests\\Unit\\PDOQueryBuilderTest::testItCanFetchSpecificColumns
Error: Call to undefined method Tests\\Unit\\PDOQueryBuilderTest::assertObjectContainsOnlyKeys()

نسخه PHPUnit که استفاده میکنم :

7bfd-phpUnitVersion.png

آقای بهپور فریاد ۰۷ فروردین ۱۴۰۲، ۱۳:۵۳

بله چون از ورژن ۱۰ استفاده میکنید این مورد هم منسوخ شده بود.

پاسخ اصلاح شد.


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