ဆော့ဖ်ဝဲဖွံ့ဖြိုးတိုးတက်မှုဖြစ်စဉ်တွင်စမ်းသပ်ခြင်းသည်ကုဒ်အရည်အသွေးနှင့်အရည်အသွေးဆိုင်ရာတိကျမှန်ကန်မှုကိုသေချာစေရန်အရေးကြီးသောအပိုင်းဖြစ်သည်။ အထူးသဖြင့်ယူနစ်စစ်ဆေးမှုကိုပြုလုပ်သောအခါ developer များသည်နည်းလမ်းသို့မဟုတ် function တစ်ခု၏မှန်ကန်မှုကိုစစ်ဆေးရန်လိုအပ်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် Mock နည်းပညာသည်အရာဝတ်ထုများ၏အပြုအမူကိုလှောင်ပြောင်ခြင်းအားဖြင့် developer များစစ်ဆေးခြင်းကိုပြုလုပ်နိုင်ရန်ကူညီနိုင်သည်။
Mock Technology သည်ပြင်ပမှီခိုသောအရာဝတ်ထုများ၏အပြုအမူကိုလှောင်ပြောင်ခြင်းဖြင့်ယူနစ်စစ်ဆေးခြင်းနည်းလမ်းဖြစ်သည်။ ပုံမှန်အားဖြင့် Mock Objects များသည်စမ်းသပ်ခြင်းတွင်သူတို့၏အပြုအမူကိုထိန်းချုပ်ရန်, စမ်းသပ်ခြင်းနှင့်ထိန်းချုပ်နိုင်ရန်အတွက်အမှန်တကယ်အရာဝတ်ထုများကိုအစားထိုးရန်အသုံးပြုသည်။ PHP တွင် Mock နည်းပညာကိုအသုံးပြုခြင်းသည်တိကျသောဒေတာများကိုပြန်ပို့ခြင်း, ချွင်းချက်များပစ်ချခြင်းစသဖြင့်ပြုလုပ်နိုင်သည့်အမျိုးမျိုးသောအခြေအနေအမျိုးမျိုးကိုတုပနိုင်သည်။
PHP Development တွင်အသုံးများသော Mock Framework သည် phpunit ဖြစ်သည်။ Phpunit သည် developer များကအလွယ်တကူလှောင်ပြောင်သည့်အပြုအမူများကိုအလွယ်တကူဖန်တီးရန်နှင့်မျှော်လင့်ထားသည့်အပြုအမူများကိုအလွယ်တကူဖန်တီးရန်ခွင့်ပြုသည့်ကြွယ်ဝသောလှောင်ပြောင်အင်္ဂါရပ်များကိုပေးသည်။ အောက်တွင်ယူနစ်စမ်းသပ်ခြင်းအတွက် Phpunit Framework တွင် Mock Theme ကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်ရိုးရှင်းသောဥပမာကိုအသုံးပြုပါမည်။
ကျွန်ုပ်တို့တွင် 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 ('Findusbyid') ၏မျှော်လင့်ထားသည့်တုံ့ပြန်မှုတန်ဖိုးကိုသတ်မှတ်ထားပါ။
-> Willeturn (id '= >> 1,' အမည် '=>' John ']) ။
// $ userservice ကိုစမ်းသပ်ရန် Mock Objects = / userservice အသစ် ($ Userreposincock);
$ ရလဒ် = $ userservice-> getuserbyid (1);
// ရလဒ်သည်ဒေါ်လာ -> asserearequals (['id' = >> 1, '' 1, 'NAME' => 'John'], $ ရလဒ်ကရရှိသည်။
}
}
>
ဤဥပမာတွင် 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 ယူနစ်စစ်ဆေးမှုတွင်သင်၏အလေ့အကျင့်အတွက်အထောက်အကူဖြစ်စေမည်ဟုမျှော်လင့်ပါသည်။