Les tests unitaires ne devraient pas dépendre d'un cluster en cours d'exécution, mais devraient plutôt être simulés. Pour être plus précis, les réponses des clients doivent être simulées. Les utilitaires de test de recherche élastique vous permettent de vous moquer très facilement des réponses Elasticsearch.
Vous pouvez utiliser le compositeur
composer require --dev imdhemy/es-testing-utils
Recherche élastique | Es testant les utilitaires |
---|---|
7.x | 7.x |
8.x | 8.x |
Es testing utils vous fournit un générateur de simulation Elasticsearch fluide, vous pouvez l'utiliser comme suit :
utilisez ImdhemyEsUtilsEsMocker;// Créez un client ES qui renvoie la réponse fictive$client = EsMocker::mock(['tagline' => 'Vous savez, pour la recherche.'])->build();
Ou vous pouvez vous moquer d'une séquence de réponses :
use ImdhemyEsUtilsEsMocker;// Le client créé renverra la réponse `$info` avec la première requête,// et la réponse `$search` avec la deuxième requête, et ainsi de suite.// Remarque : la méthode `thenFail()` se moque d'une exception de demande.$client = EsMocker::mock($info)->then($index)->then($search)->thenFail($error)->build();// Ou vous pouvez directement faire échouer la première requête :$client = EsMocker ::fail($message)->build();
Vous trouverez ci-dessous un exemple complet de la façon d'utiliser EsMocker dans un test :
utilisez ImdhemyEsUtilsEsMocker;$expected=['tagline' => 'Vous savez, pour la recherche.'];$client = EsMocker::mock($expected)->build();$response = $client->info(); $body = (string) $response->getBody();$this->assertEquals(json_encode($expected), $body);
La classe Faker vous fournit un ensemble de méthodes pour générer des données aléatoires pour vos tests. Il fournit toutes les méthodes de la bibliothèque Faker ainsi que de nouvelles méthodes pour générer des données Elasticsearch. Toutes les méthodes liées à Elasticsearch commencent par le préfixe es
.
utilisez ImdhemyEsUtilsFaker;$faker = Faker::create();$index = $faker->esIndexName(); // Renvoie un nom d'index aléatoire $createIndex = $faker->esCreateIndex(); // Renvoie le corps de la réponse de création d'index // Explorez la classe Faker pour voir toutes les méthodes disponibles
Mohamed Eldhemy
Tous les contributeurs
Les utilitaires de test ES sont un logiciel open source sous licence MIT.