Junior — Middle
Kada rekomenduojama naudoti mock-objektus vienetiniuose testuose priklausomybių imitacijai?
sobes.tech AI
Atsakymas iš AI
Mock objektai naudojami vienetiniuose testuose, kai reikia izoliuoti testuojamą komponentą nuo jo priklausomybių. Tai naudinga, jei:
- Priklausomybės yra sudėtingos arba lėtos (pvz., duomenų bazė, tinklas).
- Jos yra nestabilios arba kintančios.
- Jas sunku atkurti testavimo aplinkoje.
Mock naudojimas leidžia kontroliuoti priklausomybių elgesį, nustatyti tikėtinus atsakymus ir patikrinti sąveikas.
Pavyzdžiui, jei turite klasę, kuri kviečia išorinį API, testuose galite šį kvietimą pakeisti mock objektu, kuris grąžina iš anksto nustatytus duomenis, kad testas būtų greitas ir prognozuojamas.
PHP naudodami PHPUnit:
$mock = $this->createMock(ExternalService::class);
$mock->method('fetchData')->willReturn(['key' => 'value']);
$service = new MyService($mock);
$result = $service->process();
$this->assertEquals('expected', $result);