Sobes.tech
Junior — Middle

Երբ է խորհուրդ տրվում օգտագործել մոկ-օբյեկտներ միավորային թեստերում կախվածությունները իմիտացիայի համար?

sobes.tech AI

Պատասխան AI-ից

Մոկ-օբյեկտները օգտագործվում են միավորային փորձարկումներում, երբ անհրաժեշտ է առանձնացնել փորձարկվող բաղադրիչը նրա կախվածություններից: Սա օգտակար է, եթե՝

  • Կախվածությունները բարդ կամ դանդաղ են (օրինակ՝ տվյալների բազա, ցանց):
  • Անկայուն կամ փոփոխական են:
  • Կրկնօրինակել նրանց փորձարկման միջավայրում դժվար է:

Մոկների օգտագործումը թույլ է տալիս վերահսկել կախվածությունների վարքը, սահմանել սպասվող պատասխաններ և ստուգել փոխազդեցությունները:

Օրինակ, եթե ունեք դաս, որը զանգահարում է արտաքին API, փորձարկումներում կարող եք այդ զանգը փոխարինել մոկ-օբյեկտով, որը վերադարձնում է նախապես սահմանված տվյալներ, որպեսզի փորձարկումը լինի արագ և կանխատեսելի:

PHP-ում PHPUnit-ով:

$mock = $this->createMock(ExternalService::class);
$mock->method('fetchData')->willReturn(['key' => 'value']);

$service = new MyService($mock);
$result = $service->process();
$this->assertEquals('expected', $result);