يمكن للطلاب الذين ليسوا واضحين بشأن OpenFeign الرجوع إلى مقالتي: SpringBoot ~ OpenFeign يقول وداعًا لـ httpclient من الآن فصاعدًا
بالنسبة لـ OpenFeign ، فإنه يساعدنا على حل مشكلة خادم الاتصال الخادم. لا تحتاج إلى الاهتمام بجهاز URI للخادم ، فأنت بحاجة فقط إلى معرفة اسم الخدمة في Eureka. في الوقت نفسه ، بعد تحديد المعلمات وقيمة الإرجاع لطريقة الخدمة مع الخادم ، يمكننا أن نسخر من طرق الخادم هذه أثناء اختبار الوحدة ، وتحقيق اختبار الوحدة حقًا دون التفاعل مع الموارد الخارجية.
اليوم ، سنتحدث بشكل أساسي عن مشكلة قراءة ملفات JSON في OpenFeign. نقوم بتخزين البيانات المطلوبة للاختبار في الملف ، والتركيز بسيط نسبيًا عند تعديله.
تستخدم فئة تعليمات JSON كائن ObjectMapper بشكل أساسي
/*** تحويل JSON إلى كائن. * * param path path path */ public <t> t fromjson (مسار السلسلة ، الفئة <T> cls) {try {return ObjectMapper.ReadValue (this.fromresource (path ، charsets.utf_8) ، cls) ؛ } catch (استثناء e) {رمي جديد alficalstateException ("اقرأ json فشل:" + path ، e) ؛ }} /*** تحويل صفيف JSON إلى قائمة الكائنات. * * param path path path */ public <t> قائمة <T> listFromJson (مسار السلسلة ، typereference typereference) {try {return ObjectMapper.ReadValue (fromResource (path ، charsets.utf_8) ، typereference) ؛ } catch (استثناء e) {رمي جديد alficalstateException ("اقرأ json فشل:" + path ، e) ؛ }}في نوع وهمية ، يمكنك استخدام هذه الطريقة لقراءة محتويات ملف JSON
@configuration @profile ("integtest") serviceClientMock {bean public serviceClient RegisterServiceClient () {AccountClient Client = Mock (AccountClient.Class) ؛ عندما (client.del (anystring () ، anystring () ، anystring () ، anymap ())). thereturn (fromJson ("order/orders.json" ، map.class)) ؛ }}يحاكي الرمز أعلاه بشكل أساسي طريقة DEL في كائن ServiceClient. يحتوي على ثلاثة معلمات إدخال الأحرف ، وتتم قراءة قيمة الإرجاع من ملف JSON. في اختبار الوحدة ، يتم حقن كائن serviceClientMock مباشرة.
كما ترون من التعليق التوضيحي profile ، فإنه يعمل في بيئة Infegtest ، وفي بيئة الإنتاج ، ستستخدم خدمات حقيقية.
لخص
ما سبق هو بيانات قراءة Springboot OpenFeign من ملفات JSON التي قدمها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!