下面由laravel教程欄目給大家介紹用于測試的 Laravel Scout 陣列驅動程序,希望對需要的朋友有所幫助!
Laravel Scout 陣列驅動是由 @Sti3bas 提供的一個包,它讓 Laravel Scout 搜索測試變得更加方便:
這個包為 Laravel Scout 增加了一個 Array 驅動,并提供了自定義的 PHPUnit 斷言,使與搜索相關的測試功能更加容易。
該軟件包附帶了一個search門面,它提供的方法使搜索變得更加方便:
$user?=?factory(User::class)->create([ ????'name'?=>?'Oliver', ]); $user2?=?User::withoutSyncingToSearch(function?()?{ ????return?factory(User::class)->create([ ????????'name'?=>?'John', ????]); }); Search::assertContains($user)?//?passes ????->assertContains($user2)?//?fails ????->assertContains($user,?function?($record)?{?//?passes ????????return?$record['name']?===?'Oliver'; ????}) ????->assertContains($user,?function?($record)?{?//?fails ????????return?$record['name']?===?'John'; ????}) ????->assertContains($user2,?function?($record)?{?//?fails ????????return?$record['name']?===?'John'; ????});
Search 門面有大量的方法,你應該在?readme 找到。在我看來最出色的是 fakeRecord 方法,該方法允許你偽造模型的搜索索引記錄。
$user?=?factory(User::class)->create([ ????'id'?=>?123, ????'name'?=>?'Peter', ????'email'?=>?'peter@example.com', ]); Search::fakeRecord($user,?[ ????'id'?=>?123, ????'name'?=>?'John', ],?false); $record?=?User::search()->where('id',?123)->raw()['hits'][0]; $this->assertEquals('Peter',?$record['name']);?//?fails $this->assertEquals('John',?$record['name']);?//?passes $this->assertTrue(!isset($record['email']));?//?passes
您可以在Sti3bas / laravel-scout-array-driver上了解有關此軟件包的更多信息,獲取完整的安裝說明以及在github上 查看源代碼。
原文地址:https://laravel-news.com/laravel-scout-a…
譯文地址:https://learnku.com/laravel/t/33376
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END