۵ Amir
مشکل در متد 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 این متد‌ها حذف شده الان به جای این متد باید چه چیزی رو جایگزین کنیم ؟


Amir ۰۷ فروردین ۱۴۰۲، ۱۱:۳۲

مشکل حل شد

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

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

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

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

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

$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

Amir ۰۷ فروردین ۱۴۰۲، ۱۳:۵۳

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

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


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