es testing utils
1.0.0
单元测试不应依赖于正在运行的集群,而应进行模拟。更具体地说,应该模拟客户的响应。 Elasticsearch 测试实用程序使您可以非常轻松地模拟 Elasticsearch 响应。
你可以使用作曲家
composer require --dev imdhemy/es-testing-utils
弹性搜索 | ES 测试实用程序 |
---|---|
7.x | 7.x |
8.x | 8.x |
estestingutils为您提供了一个流畅的Elasticsearch模拟构建器,您可以按如下方式使用它:
use ImdhemyEsUtilsEsMocker;// 创建返回模拟响应的 ES 客户端$client = EsMocker::mock(['tagline' => '你知道,用于搜索。'])->build();
或者您可以模拟一系列响应:
use ImdhemyEsUtilsEsMocker;// 创建的客户端将在第一个请求中返回 `$info` 响应,// 在第二个请求中返回 `$search` 响应,依此类推。 // 注意:`thenFail()` 方法模拟请求异常。$client = EsMocker::mock($info)->then($index)->then($search)->thenFail($error)->build();// 或者可以直接让第一个请求失败:$client = EsMocker ::fail($message)->build();
下面是如何在测试中使用 EsMocker 的完整示例:
use ImdhemyEsUtilsEsMocker;$expected=['tagline' => '你知道,用于搜索。'];$client = EsMocker::mock($expected)->build();$response = $client->info(); $body = (string) $response->getBody();$this->assertEquals(json_encode($expected), $body);
faker 类为您提供了一组为测试生成随机数据的方法。它提供了 Faker 库的所有方法以及生成 Elasticsearch 数据的新方法。所有与Elasticsearch相关的方法都以es
前缀开头。
使用 ImdhemyEsUtilsFaker;$faker = Faker::create();$index = $faker->esIndexName(); // 返回一个随机索引名称$createIndex = $faker->esCreateIndex(); // 返回创建索引响应主体 // 探索 Faker 类以查看所有可用方法
穆罕默德·埃尔德赫米
所有贡献者
ES 测试实用程序是根据 MIT 许可证授权的开源软件