Las pruebas unitarias no deberían depender de un clúster en ejecución, sino que deberían burlarse de ellas. Para ser más específicos, las respuestas de los clientes deberían burlarse. Las utilidades de prueba de Elastic Search hacen que sea muy fácil burlarse de las respuestas de Elasticsearch.
Puedes usar el compositor.
composer require --dev imdhemy/es-testing-utils
Búsqueda elástica | Utilidades de prueba Es |
---|---|
7.x | 7.x |
8.x | 8.x |
Es testing utils le proporciona un generador simulado de Elasticsearch fluido, puede usarlo de la siguiente manera:
use ImdhemyEsUtilsEsMocker;// Cree un cliente ES que devuelva la respuesta simulada$client = EsMocker::mock(['tagline' => 'Ya sabes, para buscar.'])->build();
O puedes burlarte de una secuencia de respuestas:
use ImdhemyEsUtilsEsMocker;// El cliente creado devolverá la respuesta `$info` con la primera solicitud,// y la respuesta `$search` con la segunda solicitud, y así sucesivamente.// Nota: el método `thenFail()` se burla de una excepción de solicitud.$client = EsMocker::mock($info)->then($index)->then($search)->thenFail($error)->build();// O puedes fallar directamente la primera solicitud:$client = EsMocker::fail($message)->build();
A continuación se muestra un ejemplo completo de cómo utilizar EsMocker en una prueba:
use ImdhemyEsUtilsEsMocker;$expected=['tagline' => 'Ya sabes, para buscar.'];$client = EsMocker::mock($expected)->build();$response = $client->info(); $cuerpo = (cadena) $respuesta->getBody();$this->assertEquals(json_encode($esperado), $cuerpo);
La clase faker le proporciona un conjunto de métodos para generar datos aleatorios para sus pruebas. Proporciona todos los métodos de la biblioteca Faker junto con nuevos métodos para generar datos de Elasticsearch. Todos los métodos relacionados con Elasticsearch comienzan con el prefijo es
.
use ImdhemyEsUtilsFaker;$faker = Faker::create();$index = $faker->esIndexName(); // Devuelve un nombre de índice aleatorio$createIndex = $faker->esCreateIndex(); // Devuelve el cuerpo de respuesta de creación de índice// Explora la clase Faker para ver todos los métodos disponibles
Mohamed Eldhemy
Todos los contribuyentes
Las utilidades de prueba de ES son un software de código abierto con licencia MIT.