Middle+
Stop va mock o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
stop skriptni bajarish uchun ishlatiladi va ma'lum bir bosqichda holatni ko'rish uchun ishlatiladi. mock - bu sinovlarda tashqi bog'liqliklarning xulq-atvorini taqlid qilish uchun texnika bo'lib, test qilinayotgan kodni izolyatsiya qilish uchun ishlatiladi.
Stop:
- Ma'no: Debug qilish, o'rtacha natijalarni tekshirish.
- Qo'llanilishi: Dasturlash jarayonida, vaqtincha to'xtatish uchun.
- Asboblar: Ichki funksiyalar (
die(),exit()), debug asboblari (xdebug).
<?php
// Debug uchun stop ni ishlatish misoli
$data = ['item1', 'item2'];
echo "Ma'lumotlarni ishlashdan oldin.\n";
// $data ning mazmunini tekshirish uchun to'xtatamiz
die(var_dump($data));
echo "Ma'lumotlarni ishlashdan keyin.\n"; // Bu kod bajarilmaydi
Mock:
- Ma'no: Birlik testlari, test qilinayotgan kodni izolyatsiya qilish.
- Qo'llanilishi: Bog'liqliklar uchun "tutqichlar" (ma'lumotlar bazalari, tashqi API lar, boshqa sinflar) yaratish.
- Asboblar: Test frameworklari (PHPUnit) va mocklar yaratish kutubxonalari (Mockery).
<?php
// Mock konsepti misoli (frameworksiz, ko'rsatish uchun)
// Bog'liqlikni taqlid qilish
interface DataFetcher {
public function fetchData(): array;
}
// DataFetcher ga bog'liq bo'lgan, test qilinadigan sinf
class DataProcessor {
private DataFetcher $fetcher;
public function __construct(DataFetcher $fetcher) {
$this->fetcher = $fetcher;
}
public function processData(): array {
$data = $this->fetcher->fetchData();
// Ishlash logikasi
foreach ($data as &$item) {
$item = strtoupper($item);
}
return $data;
}
}
// Test uchun mock ob'ekt
class MockDataFetcher implements DataFetcher {
public function fetchData(): array {
// Haqiqiy so'rov o'rniga oldindan belgilangan ma'lumotlarni qaytaradi
return ['mock_item_1', 'mock_item_2'];
}
}
// Testda:
$mockFetcher = new MockDataFetcher();
$processor = new DataProcessor($mockFetcher);
$processed = $processor->processData();
// $processed ning ['MOCK_ITEM_1', 'MOCK_ITEM_2'] bo'lishini tekshirish
Mocklardan foydalanish, A sinfining mantiqini, B sinfining to'g'ri ishlashiga yoki mavjudligiga bog'liq bo'lmagan holda test qilish imkonini beradi. B sinfining haqiqiy o'rniga, oldindan belgilangan ma'lumotlarni qaytaradigan yoki muayyan metodlar chaqirilganligini tekshiradigan mock ishlatiladi.