روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ سید جمال جلالی
ایجاد تست برای کانفیگ مزیت یا معایب ؟؟؟
جامعه پی اچ پی ایجاد شده در ۱۰ مهر ۱۴۰۱

با سلام

ما بعد از ایجاد کلاس Config با اضاف کردن این 3 خط پایین همین کلاس میتونیم همینجا تستش کنیم و نتایج تست هم سریعا داخل ترمینال ببینیم

print_r(Config::get('dummy'));
print_r(Config::get('database'));
print_r(Config::get('database','pdo'));

و حالا اگه بخواییم طبق اصول تست و phpunit پیش بریم حداقل کار اینه که باید یه کلاس تعریف کنیم به نام ConfigTest.php به شکل زیر


namespace Test\\Unit;
use App\\Exceptions\\ConfigFileNotFoundException;
use App\\Helpers\\Config;
use PHPUnit\\Framework\\TestCase;
class ConfigTest extends TestCase{
    public function testGetFileContentsReturnsArray(){
        $config = Config::getFileContents('database');
        $this->assertIsArray($config);
    }
    public function testThrowsExceptionIfFileNotFound(){
        $this ->expectException(ConfigFileNotFoundException::class);
        $config = Config::getFileContents('dummy');
    }
    public function testGetMethodReturnValidData(){
        $config = Config::get('database','pdo');
        $expectedData = [
            'driver' =>'mysql',
            'host' =>'localhost',
            'database' =>'bug_tracker',
            'db_user' =>'root',
            'db_password' =>'123456'
        ];
        $this->assertEquals($config,$expectedData);
    }
}

حالا سوال ؟؟؟ ...وقتی با سه تا خط همونجا میتونستیم کانفیگ رو تست کنیم چه کاری بود که اینقدر تنظیمات و کلاس‌های مختلف تعریف کنیم ؟؟؟؟؟

سلام جمال جان

من در ابتدا بگم که متوجه سوالت نشدم!

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

توی این دوره هم هدف دیدن روش‌های مختلف تا حد امکان و اولیه بوده

موفق باشید ?

بهترین پاسخ
محمد گازری ۱۱ مهر ۱۴۰۱، ۱۷:۰۸