البرمجة

تحقق من طول مصفوفة JSON باستخدام RestAssured في اختباراتك

في مقالنا اليوم، سنستكشف كيف يمكنك التحقق من طول مصفوفة JSON في استجابة الطلب باستخدام RestAssured، وذلك بدون الحاجة إلى تحويل الاستجابة إلى مصفوفة من كائنات DTO. يعد هذا أمرًا ذا أهمية خاصة عندما تكون البيانات العائدة من الطلب ذات طابع بسيط ولا تتطلب تحليلاً معقداً.

أولاً وقبل البدء في الشرح، يُشير الكود المرفق إلى استخدام مكتبة RestAssured لإجراء اختبار للطلب الخاص بك، وهذا يفترض أن يكون لديك نهاية نقطية (Endpoint) ترجع استجابة JSON تحتوي على مصفوفة من كائنات FooDto. الهدف هو فحص الطول دون الحاجة إلى تحويل الاستجابة إلى مصفوفة من كائنات.

بناءً على السيناريو الذي ورد في السؤال، يمكنك تحقيق ذلك باستخدام طريقة body من RestAssured للتحقق من الخصائص المباشرة للاستجابة. تظهر الكود المحدث أدناه كيف يمكن تنفيذ ذلك:

java
@Test public void test() { RestAssured.get("/foos") .then() .assertThat() .body("$.size()", equalTo(2)); }

في هذا الكود، يتم استخدام المثيل $ للإشارة إلى الجذر (root) للاستجابة JSON. تُستخدم size() للإشارة إلى حجم المصفوفة، ونستخدم equalTo(2) للتحقق من أن الحجم يتوافق مع المتوقع، الذي في هذه الحالة هو 2.

هذا النهج يسمح لك بتحقق من خصائص الاستجابة مباشرة دون الحاجة إلى تحويلها إلى كائنات DTO، مما يبسط الاختبارات الخاصة بك ويجعلها أكثر فعالية.

المزيد من المعلومات

بالطبع، سنقدم مزيدًا من المعلومات حول كيفية تحقق طول مصفوفة JSON باستخدام RestAssured وكيف يمكنك تحسين اختباراتك لتكون أكثر دقة وقوة.

قد تحتاج أحيانًا إلى المزيد من التفاصيل حول العناصر داخل المصفوفة، لذا يمكنك تحسين اختبارك للتحقق من القيم لكل عنصر على حدة. على سبيل المثال، إذا كنت ترغب في التحقق من وجود عنصر معين بناءً على القيمة في الخاصية “name”، يمكنك استخدام التعبيرات السالبة (negative assertions) للتحقق من عدم وجود أي خطأ في الطلب.

java
@Test public void test() { RestAssured.get("/foos") .then() .assertThat() .body("find { it.name == 'Name4' }", notNullValue()) .body("find { it.name == 'NonExistentName' }", nullValue()); }

في هذا المثال، تستخدم find { it.name == 'Name4' } للبحث عن عنصر يحمل قيمة ‘Name4’ في الخاصية “name”. يتم استخدام notNullValue() للتحقق من أن القيمة غير خالية (تعود لعنصر موجود)، ويتم استخدام nullValue() للتحقق من عدم وجود عنصر يحمل القيمة ‘NonExistentName’.

هذه الطريقة تمكنك من تفحص قيم العناصر داخل المصفوفة بشكل دقيق، مما يسهل عليك فحص استجاباتك بشكل شامل.

إضافةً إلى ذلك، يمكنك النظر في استخدام Hamcrest Matchers مع RestAssured لتوفير تعبيرات أكثر قوة وتعبيرية. قد تكون هذه الأدوات مفيدة لتحسين قوة اختباراتك وجعلها أكثر قابلية للصيانة.

زر الذهاب إلى الأعلى