نحوه نام گذاری متدها در کلاس تست

پرسیده شده
فعالیت 1239 روز پیش
دیده شده 403 بار
0

سلام

چندتا سوال برام پیش اومده:

 

۱. چرا نام متد کلاس ها را انقدر طولانی تعریف می کنید، مثلا: testItThorwsExceptionIfFileNotFound

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

 

۲. یک متد تعریف کردیم که: 

public function testGetMethodReturnsValidData()
    {
        $config = Config::get('database', 'pdo');
        $expected = [
            'driver'  => 'mysql',
            'host'    => 'localhost',
            'db_name' => 'orm',
            'db_user' => 'root',
            'db_pass' => ''
        ];

        $this->assertEquals($expected, $config);
    }

میشه یک متد به عنوان dataProvider تعریف کنیم؟ که میشه :

     /**
     * @dataProvider databaseConfigs
     */
    public function testGetMethodReturnsValidData(array $expected)
    {
        $config = Config::get('database', 'pdo');

        $this->assertEquals($expected, $config);
    }

    public function databaseConfigs()
    {
        return [
            [
                [
                    'driver'  => 'mysql',
                    'host'    => 'localhost',
                    'db_name' => 'orm',
                    'db_user' => 'root',
                    'db_pass' => ''
                ]
            ]
        ];
    }

فقط آرایه مون خیلی تو در تو میشه ? 

فایل پیوست

2
حذف شده

سلام، وقتتون بخیر 

 

در مورد نام متد‌های تست به این صورت میباشد که این کار مرسوم هستش، به این صورت که باید نام متد تست کاملا نشون بده که دقیقا اون تست داره چه کاری انجام میده به همین خاطر امکان داره طولانی باشه که مشکلی از این بابت نیست .. 

در مجموع در مورد نام متد ( چه متدهای تست و چه متدهایی که داخل کلاس‌های ما وجود داره ) موضوعی که هست اینه که باید نام نشون بده که اون تابع دقیقا داره چی کار میکنه .. این موضوع دقیقا داخل متدهای تست هم صادق هستش. 

 

در مورد سوال دومتون باید بگم که اصولا این کار مرسوم نیستش .. شما داخل DataProvider همونطور که از اسمش مشخص هست باید زمانی که تعداد دیتای زیادی دارید و میخواید تک‌تک تست روی اونها انجام بدید بهتره که از اون مورد استفاده کنید.

ولی در مجموع کاری که شما هم انجام دادید نمیشه گفت کار غلطی هستش. این هم یه نوعی استفاده کردن از dataProvider هستش :))

 

موفق باشید.

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

8 آذر 99