Pengujian unit tidak boleh bergantung pada kluster yang sedang berjalan, melainkan harus ditiru. Untuk lebih spesifiknya, tanggapan klien harus diolok-olok. Utilitas pengujian pencarian elastis membuatnya sangat mudah bagi Anda untuk meniru respons Elasticsearch.
Anda dapat menggunakan komposer
composer require --dev imdhemy/es-testing-utils
Pencarian elastis | Es pengujian Utils |
---|---|
7.x | 7.x |
8.x | 8.x |
Utilitas pengujian ini memberi Anda pembuat tiruan Elasticsearch yang lancar, Anda dapat menggunakannya sebagai berikut:
gunakan ImdhemyEsUtilsEsMocker;// Buat klien ES yang mengembalikan respons tiruan$client = EsMocker::mock(['tagline' => 'Anda tahu, untuk pencarian.'])->build();
Atau Anda dapat mengejek serangkaian tanggapan:
gunakan ImdhemyEsUtilsEsMocker;// Klien yang dibuat akan mengembalikan respons `$info` pada permintaan pertama, // dan respons `$search` pada permintaan kedua, dan seterusnya.// Catatan: metode `thenFail()` mengolok-olok pengecualian permintaan.$client = EsMocker::mock($info)->then($index)->then($search)->thenFail($error)->build();// Atau Anda bisa langsung menggagalkan permintaan pertama:$client = EsMocker ::gagal($pesan)->build();
Di bawah ini adalah contoh lengkap cara menggunakan EsMocker dalam pengujian:
gunakan ImdhemyEsUtilsEsMocker;$expected=['tagline' => 'Anda tahu, untuk pencarian.'];$client = EsMocker::mock($expected)->build();$response = $client->info(); $body = (string) $response->getBody();$this->assertEquals(json_encode($expected), $body);
Kelas pemalsu memberi Anda serangkaian metode untuk menghasilkan data acak untuk pengujian Anda. Ini menyediakan semua metode perpustakaan Faker bersama dengan metode baru untuk menghasilkan data Elasticsearch. Semua metode yang terkait dengan Elasticsearch dimulai dengan awalan es
.
gunakan ImdhemyEsUtilsFaker;$faker = Faker::create();$index = $faker->esIndexName(); // Mengembalikan nama indeks acak$createIndex = $faker->esCreateIndex(); // Mengembalikan badan respons indeks yang dibuat // Jelajahi kelas Faker untuk melihat semua metode yang tersedia
Mohammad Eldhemy
Semua Kontributor
Utilitas pengujian ES adalah perangkat lunak sumber terbuka yang dilisensikan di bawah lisensi MIT