امروز همراه شما هستم با معرفی یک کتابخانه برای برای تست برنامه های php ،Callable Fake یک ابزار مفید برای تست در php است که توسط تیم مک دونالد توسعه داده شده است. این کتابخانه به شما این امکان را می دهد تا یک درخواست فیک و جعلی برای درخواست های callable/Closure ایجاد کنید و آن را دریافت کنید. در بعضی از حالات این پکیج به شما این امکان را می دهد تا در سناریوهای مختلف تست کردن به عنوان یک توسعه دهنده بتوانید یک کال بک (callable) را به کد خود ارسال کنید.
برای استفاده از این کتابخانه در لاراول می توان از API آن تقریبا به شکل زیر استفاده کرد:
// Before, you might collect callables to assert later...
public function testEachLoopsOverAllDependencies(): void
{
// arrange
$received = [];
$expected = factory(Dependency::class)->times(2)->create();
$repo = $this->app[DependencyRepository::class];
// act
$repo->each(function (Dependency $dependency) use (&$received): void {
$received[] = $dependency;
});
// assert
$this->assertCount(2, $received);
$this->assertTrue($expected[0]->is($received[0]));
$this->assertTrue($expected[1]->is($received[1]));
}
البته از این بسته شما می توانید به شکل های دیگری مثل کد زیر نیز استفاده کنید:
public function testEachLoopsOverAllDependencies(): void
{
// arrange
$callable = new CallableFake();
$expected = factory(Dependency::class)->times(2)->create();
$repo = $this->app[DependencyRepository::class];
// act
$repo->each($callable);
// assert
$callable->assertTimesInvoked(2);
$callable->assertCalled(function (Depedency $dependency) use ($expected): bool {
return $dependency->is($expected[0]);
});
$callable->assertCalled(function (Dependency $dependency) use ($expected): bool {
return $dependency->is($expected[1]);
});
}
این بسته می تواند درخواست ها (ادعا ها) را نیز به شکل assertCalled و یا assertNotCalled و یا assertInvoked و مواردی دیگر را نیز برای استفاده ارائه دهد. شما می توانید برای دریافت جزدیات بشتر در رابطه با این کتابخانه ،راهنمای نصب و استفاده از آن و یا دیدن مثال هایی بیشتر برای استفاده از لینک توضیحات آن که در زیر برای شما قرار داده ایم استفاده کنید.
شما به کمک این لینک (لینک بالا) می توانید توضحات تکمیلی از سازنده آن و یا سورس کد این کتابخانه را دریافت کنید.
نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.