การทดสอบหน่วยไม่ควรขึ้นอยู่กับคลัสเตอร์ที่ทำงานอยู่ แต่ควรถูกจำลองแทน เพื่อให้เจาะจงยิ่งขึ้น ควรล้อเลียนคำตอบของลูกค้า เครื่องมือทดสอบการค้นหาแบบยืดหยุ่นช่วยให้คุณจำลองคำตอบของ Elasticsearch ได้อย่างง่ายดาย
คุณสามารถใช้ผู้แต่ง
composer require --dev imdhemy/es-testing-utils
การค้นหาแบบยืดหยุ่น | การทดสอบ Utils |
---|---|
7.x | 7.x |
8.x | 8.x |
Es การทดสอบยูทิลิตี้ช่วยให้คุณมีเครื่องมือสร้างจำลอง Elasticsearch ได้อย่างคล่องแคล่ว คุณสามารถใช้มันได้ดังต่อไปนี้:
ใช้ ImdhemyEsUtilsEsMocker;// สร้างไคลเอนต์ ES ที่ส่งคืนการตอบสนองจำลอง $client = EsMocker::mock(['tagline' => 'You know, for search.'])->build();
หรือคุณสามารถจำลองลำดับการตอบสนอง:
ใช้ ImdhemyEsUtilsEsMocker;// ไคลเอนต์ที่สร้างขึ้นจะส่งคืนการตอบสนอง `$info` ด้วยคำขอแรก // และการตอบสนอง `$search` ด้วยคำขอที่สอง และอื่น ๆ // หมายเหตุ: เมธอด `thenFail()` จำลองคำขอข้อยกเว้น $client = EsMocker::mock($info)->then($index)->then($search)->thenFail($error)->build();// หรือคุณสามารถล้มเหลวในคำขอแรกได้โดยตรง:$client = EsMocker ::ล้มเหลว($ข้อความ)->สร้าง();
ด้านล่างนี้เป็นตัวอย่างที่สมบูรณ์ของวิธีใช้ EsMocker ในการทดสอบ:
ใช้ 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