<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محراب محمدزاده</title>
        <link>https://virgool.io/feed/@mehrabx</link>
        <description>دوستدار کد، دوستدار طبیعت، آروم</description>
        <language>fa</language>
        <pubDate>2026-06-08 03:38:37</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2227920/avatar/onuhjI.jpg?height=120&amp;width=120</url>
            <title>محراب محمدزاده</title>
            <link>https://virgool.io/@mehrabx</link>
        </image>

                    <item>
                <title>چگونه تاریخ‌های متغیر در php و Laravel را تست کنیم</title>
                <link>https://virgool.io/@mehrabx/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%87%D8%A7%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-php-%D9%88-laravel-%D8%B1%D8%A7-%D8%AA%D8%B3%D8%AA-%DA%A9%D9%86%DB%8C%D9%85-cfds7wkh9fr0</link>
                <description>mock date in phpدرود دوستانممکنه براتون پیش اومده باشه که توی اجرای تست‌هاتون بخشی از کد تحت تست مقدار متغیری تولید می‌کرده و تست کردن رو براتون دشوار کرده. تو این بخش بهتون میگم اگر این مقدار متغیر تاریخ بود چطور میتونین مشکل رو حل کنین و امیدوارم به کارتون بیاد.کلاس زیر رو در نظر بگیریم :تاریخ متغیر data()همونطور که میبینید متد generateName بعد از هر بار اجرا به دلیل استفاده از تابع date یک نام جدید و متفاوت تولید میکنه .حالا فرض کنین ما بخوایم متد save رو تست کنیم که داخل خودش از متد generateName استفاده کرده:خط ۳ یک آبجکت از کلاس FileManager میسازیم.خط ۵ متد save را صدا کرده و یک فایل فرضی بهش پاس میدیم.خط ۷ نامی که فکر میکنیم از متد generateName تولید شده.خط ۹ انتظار داریم که یک فایل با نام &#x27;testname&#x27; ذخیره شده باشد.که میدونیم این تست پاس نمیشه . چون ما نمیدنیم چه نامی برای ذخیره در دیتابیس تولید شده.برای حل این مشکل میتونیم از پکیج Carbon استفاده کنیم که احتمالا از قبل باهاش آشنا هستین و الان هم داخل پروژه‌هاتون استفاده میشه. در خط ۱۶ به جای تابع date از کربن استفاده می‌کنیم:تا اینجا نتیجه کارمون تغییری نکرده .ولی حالا میتونیم از متد setTestNow ابتدای تستمون استفاده کنیم و تاریخ و زمان مورد انتظار خودمون رو بهش پاس بدیم . کاری که این متد میکنه اینه که مقدار مد نظر ما رو میگیره و هر جای کدمون که از کربن استفاده شده باشه مقدار مد نظر مارو جایگزین میکنه . یعنی موقع اجرای تست میتونین نام فایل تولید شده رو خودمون تعیین کنیم:و تمام. ما خروجی مد نظر خودمون از تاریخ رو تولید کردیم و اصطلاحا اون رو mock کردیم.</description>
                <category>محراب محمدزاده</category>
                <author>محراب محمدزاده</author>
                <pubDate>Fri, 24 Feb 2023 13:41:56 +0330</pubDate>
            </item>
            </channel>
</rss>