Laravel Scout 数组驱动用于测试
发布时间 作者: Paul Redmond
Laravel Scout 数组驱动是由 @Sti3bas 开发的,提供方便的测试 Laravel Scout 搜索功能
此包为 Laravel Scout 添加了一个
array
驱动,并提供自定义 PHPUnit 断言,使测试搜索相关功能变得更加容易。
此包附带一个 Search
Facade,提供方便的方法,使断言搜索变得更加容易
$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
Facade 有很多方法,您应该在 自述文件 中查看。其中一个值得关注的是 fakeRecord
方法。此方法允许您伪造模型的搜索索引记录。
$user = factory(User::class)->create([ 'id' => 123, 'name' => 'Peter', 'email' => '[email protected]',]); 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 中了解更多关于此包的信息,获取完整的安装说明并查看源代码。