လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ယူနစ်စစ်ဆေးမှုတွင် Mock Technology ၏လျှောက်လွှာ - စမ်းသပ်ခြင်းပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်မှုကိုတိုးတက်အောင်ပြုလုပ်ခြင်း

PHP ယူနစ်စစ်ဆေးမှုတွင် Mock Technology ၏လျှောက်လွှာ - စမ်းသပ်ခြင်းပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်မှုကိုတိုးတက်အောင်ပြုလုပ်ခြင်း

M66 2025-06-13

PHP ယူနစ်စစ်ဆေးမှုတွင် Mock Technology ၏လျှောက်လွှာ - စမ်းသပ်ခြင်းပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်မှုကိုတိုးတက်အောင်ပြုလုပ်ခြင်း

ဆော့ဖ်ဝဲဖွံ့ဖြိုးတိုးတက်မှုဖြစ်စဉ်တွင်စမ်းသပ်ခြင်းသည်ကုဒ်အရည်အသွေးနှင့်အရည်အသွေးဆိုင်ရာတိကျမှန်ကန်မှုကိုသေချာစေရန်အရေးကြီးသောအပိုင်းဖြစ်သည်။ အထူးသဖြင့်ယူနစ်စစ်ဆေးမှုကိုပြုလုပ်သောအခါ developer များသည်နည်းလမ်းသို့မဟုတ် function တစ်ခု၏မှန်ကန်မှုကိုစစ်ဆေးရန်လိုအပ်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် Mock နည်းပညာသည်အရာဝတ်ထုများ၏အပြုအမူကိုလှောင်ပြောင်ခြင်းအားဖြင့် developer များစစ်ဆေးခြင်းကိုပြုလုပ်နိုင်ရန်ကူညီနိုင်သည်။

Mock နည်းပညာကဘာလဲ။

Mock Technology သည်ပြင်ပမှီခိုသောအရာဝတ်ထုများ၏အပြုအမူကိုလှောင်ပြောင်ခြင်းဖြင့်ယူနစ်စစ်ဆေးခြင်းနည်းလမ်းဖြစ်သည်။ ပုံမှန်အားဖြင့် Mock Objects များသည်စမ်းသပ်ခြင်းတွင်သူတို့၏အပြုအမူကိုထိန်းချုပ်ရန်, စမ်းသပ်ခြင်းနှင့်ထိန်းချုပ်နိုင်ရန်အတွက်အမှန်တကယ်အရာဝတ်ထုများကိုအစားထိုးရန်အသုံးပြုသည်။ PHP တွင် Mock နည်းပညာကိုအသုံးပြုခြင်းသည်တိကျသောဒေတာများကိုပြန်ပို့ခြင်း, ချွင်းချက်များပစ်ချခြင်းစသဖြင့်ပြုလုပ်နိုင်သည့်အမျိုးမျိုးသောအခြေအနေအမျိုးမျိုးကိုတုပနိုင်သည်။

ယူနစ်စစ်ဆေးမှုအတွက် Mock နည်းပညာကိုဘယ်လိုသုံးရမလဲ။

PHP Development တွင်အသုံးများသော Mock Framework သည် phpunit ဖြစ်သည်။ Phpunit သည် developer များကအလွယ်တကူလှောင်ပြောင်သည့်အပြုအမူများကိုအလွယ်တကူဖန်တီးရန်နှင့်မျှော်လင့်ထားသည့်အပြုအမူများကိုအလွယ်တကူဖန်တီးရန်ခွင့်ပြုသည့်ကြွယ်ဝသောလှောင်ပြောင်အင်္ဂါရပ်များကိုပေးသည်။ အောက်တွင်ယူနစ်စမ်းသပ်ခြင်းအတွက် Phpunit Framework တွင် Mock Theme ကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်ရိုးရှင်းသောဥပမာကိုအသုံးပြုပါမည်။

ဥပမာ - မှီခိုအရာဝတ်ထုကို simulating

ကျွန်ုပ်တို့တွင် Userrepository Class တွင်အသုံးပြုသော Userrepository Class အပေါ် မူတည်. ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်သည်ဆိုပါစို့။ Rearrepsitory Class ကိုမမှီခိုဘဲ GetuserBerbyID () ကိုအသုံးပြုလိုသောအသုံးပြုမှုနည်းလမ်းကိုကျွန်ုပ်တို့စစ်ဆေးလိုသည်။ ၎င်းကိုရရှိရန်အတွက် USEREPOSTART ၏အပြုအမူကိုတုပရန် Mock Teacher ကိုသုံးနိုင်သည်။

<?php
// UserService.php
class UserService
{
    private $userRepository;

    public function __construct(UserRepository $userRepository)
    {
        $this-> UsheRepository = $ Userreposinal,
    }

    Public function getuserbyid ($ ID)
    {
        $:> Userrepository-> Finduserbyid ($ ID);
    }
}

// Userrepository.php
Class Userrepository
{
    အများပြည်သူ function ကိုရှာတွေ့သည်။ ($ ID)
    {
        // ဒေတာဗေ့စ်ကိုရှာဖွေပြီးအသုံးပြုသူအချက်အလက်များကိုပြန်ပို့ပါ}
}
>

အထက်ပါကုဒ်တွင် userservice class သည် data query function ကိုအကောင်အထည်ဖော်ရန် USEREPOSTART အတန်းပေါ်တွင်မှီခိုသည်။ အသုံးပြုသူ၏ getuserbyidid နည်းလမ်းကိုစမ်းသပ်ရန်ကျွန်ုပ်တို့သည်စာမေးပွဲတွင်ဒေတာဘေ့စ်ကိုမဝင်ရောက်လိုပါ။

လှောင်ပြောင်နှင့်အတူအရာဝတ္ထုများ

ကျွန်ုပ်တို့သည် Phpunit ၏လှောင်ပြောင်မှုန်ကို အသုံးပြု. Uerrepository ကိုဖွင့်ထားသည့်အရာဝတ်ထုတစ်ခုကိုဖန်တီးရန်နှင့်မျှော်လင့်ထားသည့်ပြန်လည်တန်ဖိုးကိုသတ်မှတ်ရန်အသုံးပြုနိုင်သည်။ ဤတွင်ပြီးပြည့်စုံသောစမ်းသပ်မှုကုဒ်ဖြစ်သည်။

<?php
// UserServiceTest.php
class UserServiceTest extends PHPUnit_Framework_TestCase
{
    public function testGetUserById()
    {
        // ဖန်တီးUserRepositoryခြင်း
        $userRepositoryMock = $this-> GetMockberilder (Userreporitory :: Class)
            -> Disableoriginal Constructor ()
            -> GetMock ();

        // Mock Object $ Userrepositorymock-> Method (&#39;Findusbyid&#39;) ၏မျှော်လင့်ထားသည့်တုံ့ပြန်မှုတန်ဖိုးကိုသတ်မှတ်ထားပါ။
            -> Willeturn (id &#39;= >> 1,&#39; အမည် &#39;=>&#39; John &#39;]) ။

        // $ userservice ကိုစမ်းသပ်ရန် Mock Objects = / userservice အသစ် ($ Userreposincock);
        $ ရလဒ် = $ userservice-> getuserbyid (1);

        // ရလဒ်သည်ဒေါ်လာ -> asserearequals ([&#39;id&#39; = >> 1, &#39;&#39; 1, &#39;NAME&#39; => &#39;John&#39;], $ ရလဒ်ကရရှိသည်။
    }
}
>

ဤဥပမာတွင် Phpunit ၏ GetMockbuilder Method မှတစ်ဆင့် USEREPOSTRITY မှလှောင်ပြောင်သည့်အရာဝတ်ထုတစ်ခုကိုပြသသည်။ ထို့နောက်ကျွန်ုပ်တို့သည် uspulabled လုပ်ထားသော USEREPOSTICTARTART OFF ကိုကျွန်ုပ်တို့ရှာဖွေပြီး simuledated Userrepsitory Object တွင်ဖြတ်သန်းသွားပြီးနောက်ဆုံးတွင် Getuserbyid နည်းလမ်း၏ရလဒ်ရလဒ်သည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိကိုအတည်ပြုသည်။

အကျဉ်းချုပ်

Mock Technology သည် PHP ယူနစ်စစ်ဆေးခြင်းတွင်အရေးပါသောအခန်းကဏ် plays မှအရေးပါသောအခန်းကဏ် plays မှပါ 0 င်သည်။ Phpunit Framework နှင့်အတူပြင်ပတွင်မှီခိုမှုများတုပရန် Mock Objects ကိုအသုံးပြုရန်အလွန်လွယ်ကူသည်။ developer များအနေဖြင့် Mock နည်းပညာကျွမ်းကျင်မှုသည်ယူနစ်စမ်းသပ်ခြင်းနှင့်အရည်အသွေးကိုတိုးတက်စေရန်အရေးကြီးသောစွမ်းရည်တစ်ခုဖြစ်သည်။

အထက်ဖော်ပြပါအချက်များသည် PHP Code စစ်ဆေးခြင်းတွင်ပြောင်ပြောင်တင်းတင်းနည်းပညာလျှောက်လွှာနှင့်ပတ်သက်သည့်နိဒါန်းနှင့်နမူနာကုဒ်ဖြစ်သည်။ PHP ယူနစ်စစ်ဆေးမှုတွင်သင်၏အလေ့အကျင့်အတွက်အထောက်အကူဖြစ်စေမည်ဟုမျှော်လင့်ပါသည်။