ယူနစ်စမ်းသပ်ခြင်းတွင်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသော callback လုပ်ဆောင်ချက်များ၏လုပ်ဆောင်မှုအောက်တွင်စုဆောင်းထားသောစစ်ဆင်ရေးများကိုစစ်ဆေးရန်လိုအပ်သည်။ Phpunit သည်အထူးသဖြင့်အရေးယူမှုများသို့မဟုတ်စုဆောင်းမှုများကိုမကြာခဏနှိုင်းယှဉ်ခြင်းနှင့်နှိုင်းယှဉ်ပါကအထူးသဖြင့်လုပ်ဆောင်ချက်များသို့မဟုတ် collections များနှင့်မကြာခဏအသုံးပြုသောအခါ, ဤဆောင်းပါးသည် Phpunit တွင်အဓိကအမည်နှိုင်းယှဉ်မှုအခြေအနေများအကောင်အထည်ဖော်ရန် Phpunit တွင် callback function များကိုမည်သို့တုပရန်ကိုပြသမည်ဖြစ်သည်။
သော့များသည်ကျပန်းနှင့်မမှန်သောအချက်အလက်များကိုကိုယ်စားပြုသည့်ဆိုပါစို့။ ဒီ arrays တွေကိုစီဖို့လိုတယ်, ဒါပေမယ့်အမိန့်စည်းမျဉ်းစည်းကမ်းတွေကသော့ရဲ့အရွယ်အစားကိုတိုက်ရိုက်မနှိုင်းယှဉ်ပါ,
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်သော့ချက်အမည်များကိုအက္ခရာစဉ်အတိုင်းဖြစ်စေ, သို့မဟုတ်သော့ချက်အမည်များဖြင့်စီရန်သို့မဟုတ်အချို့သောစီးပွားရေးစည်းမျဉ်းစည်းကမ်းများအပေါ် အခြေခံ. အစုလိုက်အပြုံလိုက်အမိန့်ကိုပင်ဆုံးဖြတ်လိုပေမည်။
ဤလုပ်ဆောင်ချက်ကိုစမ်းသပ်ရန်ကျွန်ုပ်တို့သည် callback တွင်အမည်များကိုမျှော်လင့်ထားသည့်အဓိကအမည်များကိုနှိုင်းယှဉ်ခြင်းရှိမရှိ Phpunit တွင်အတည်ပြုရန် callback function ကို Simulate Simulate ကိုဖန်တီးနိုင်သည်။
ကျွန်ုပ်တို့တွင်အောက်ပါ PHP လုပ်ဆောင်ချက်ရှိသည်ဆိုပါစို့။
function customSort(array $array, callable $callback): array {
uksort($array, $callback);
return $array;
}
ဤလုပ်ဆောင်ချက် သည် ခင်းကျင်းခြင်းနှင့် callback function ကိုပြုလုပ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသော callback လုပ်ဆောင်ချက်များကိုတုပသော phpunit စမ်းသပ်မှုတစ်ခုကိုရေးပါမည်။
Phpunit စမ်းသပ်မှုများတွင်ကျွန်ုပ်တို့သည် creatback function များကိုတုပရန် ဖန်တီးမှု () သို့မဟုတ် callback () နည်းလမ်းများကိုသုံးနိုင်သည်။ ကွဲပြားခြားနားသော callbacks ကိုမည်သို့တုပရန်နှင့် အကောက်ခွန် function ကိုစမ်းသပ်ရန်ဥပမာ၏ဥပမာတစ်ခုဖြစ်သည်။
use PHPUnit\Framework\TestCase;
class CustomSortTest extends TestCase {
public function testSortByLength() {
$array = [
'apple' => 'fruit',
'banana' => 'fruit',
'kiwi' => 'fruit',
'grape' => 'fruit',
];
// သော့အမည်အရှည်အရှည် sorting ကြောင်း callback function ကို
$callback = function($a, $b) {
return strlen($a) - strlen($b);
};
$sortedArray = customSort($array, $callback);
$this->assertEquals(['kiwi' => 'fruit', 'apple' => 'fruit', 'grape' => 'fruit', 'banana' => 'fruit'], array_keys($sortedArray));
}
public function testSortAlphabetically() {
$array = [
'apple' => 'fruit',
'banana' => 'fruit',
'kiwi' => 'fruit',
'grape' => 'fruit',
];
// cypressback လုပ်ဆောင်ချက်များကိုအက္ခရာစဉ်အလိုက်စီလိုက်
$callback = function($a, $b) {
return strcmp($a, $b);
};
$sortedArray = customSort($array, $callback);
$this->assertEquals(['apple' => 'fruit', 'banana' => 'fruit', 'grape' => 'fruit', 'kiwi' => 'fruit'], array_keys($sortedArray));
}
public function testSortByCustomLogic() {
$array = [
'apple' => 'fruit',
'banana' => 'fruit',
'kiwi' => 'fruit',
'grape' => 'fruit',
];
// ပြောင်းပြန်အက်ခရာအမိန့်တွင် sorted callback လုပ်ဆောင်ချက်များကို Simulate function ကို Simulate
$callback = function($a, $b) {
return strcmp($b, $a);
};
$sortedArray = customSort($array, $callback);
$this->assertEquals(['kiwi' => 'fruit', 'grape' => 'fruit', 'banana' => 'fruit', 'apple' => 'fruit'], array_keys($sortedArray));
}
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်စမ်းသပ်မှုသုံးခုကိုရေးပါ, တစ်ခုချင်းစီသည်ခင်းကျင်းမှု၏အမျိုးအစားခွဲခြားမှုကိုစစ်ဆေးရန်မတူညီသော callback function ကိုတုပသည်။
Testsortbylenger : သော့အမည်ရှိအမည်အရစီပါ။
testsortalphabetically : အက္ခရာစဉ်အရ။
TestsortbyCustomlogic : စိတ်ကြိုက်နှိုင်းယှဉ်သည့်ယုတ္တိဗေဒကိုသုံးပါ။
ဤစစ်ဆေးမှုများကို Phpunit command line tool မှတဆင့်အသုံးပြုနိုင်သည်။
php vendor/bin/phpunit tests/CustomSortTest.php
အရာအားလုံးကောင်းကောင်းသွားလျှင်စမ်းသပ်မှုအားလုံးသည်မတူညီသော callback လုပ်ဆောင်ချက်များကိုမှန်ကန်စွာနှိုင်းယှဉ်နိုင်ကြောင်းညွှန်ပြသည်။
ဤဆောင်းပါးတွင် Phpunit တွင်အဓိကအမည်နှိုင်းယှဉ်မှုအတွက် Phpunit တွင် callback function များကိုမည်သို့တုပနိုင်ပုံကိုပြသသည်။ UKSARS () နှင့် ခေါ်ဆိုမှု ခေါ်ဆိုမှုဆိုင်ရာလုပ်ဆောင်မှုများကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့တွင်စည်းမျဉ်းများကိုမည်သို့ခွဲခြားထားပြီး Phpunit ကိုမည်သို့အသုံးပြုသည်ကိုထိန်းချုပ်ရန်နှင့် Phpunit ကို အသုံးပြု. ကျွန်ုပ်တို့၏ယုတ္တိဗေဒသည်မျှော်လင့်ထားသည့်အတိုင်းလုပ်ဆောင်ရန်အတွက် Phpunit ကိုအသုံးပြုသည်။
ပိုမိုရှုပ်ထွေးသောခင်းကျင်းမှုလုပ်ငန်းများနှင့် sorting များကိုအကောင်အထည်ဖော်ရန်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီကွဲပြားခြားနားသောနှိုင်းယှဉ်ခြင်းလုပ်ဆောင်ချက်များကိုအလွယ်တကူတုန့်ပြန်နိုင်သည်။