اليوم ، تم إجراء اختبارات متعددة الأبعاد لفريق طلب البيانات من قاعدة البيانات ، وقد تم وصف عملية التطوير الخاصة بها بالتفصيل والاكتشاف الشديد هنا وهنا .
ماذا أظهرت الاختبارات؟ يعمل الفريق ، لكن ... في حالة الاستخدام التي يجب عليك استخدامها ، من غير المناسب تكوينها.
كما ذكرت في المنشور الأول ، لكل تبادل بيانات مع مزود خدمة KYC ، يجب اختيار العديد من السجلات نسبياً من قاعدة البيانات ، قدر الإمكان. أكثر من عشرة. سلوك الخوارزمية لاستخراج السجلات من قاعدة البيانات في إطار كل طلب مماثل ، ويتم تغيير الإعدادات فقط. إذا كتبت لأول مرة اختبار تكامل يوضح حالة استخدام القتال ، فسوف أفهم ما هي التفاصيل الأساسية التي ينبغي عدم التغاضي عنها. قد يبدو اختبار الاندماج كالتالي:
describe('configure and run database requests', () => { const context = require('../src/storage/requestContext'); const requestHandler = require('../src/storage/requestHandler'); it('should get full recordset from db', (done) => { for(let key of context.rules.keys()) { let handle = requestHandler.bind(context, [key]); context.store.subscribe(handle); } const assert = checkDataIsReady.bind(context, [done]); context.store.subscribe(assert); const note = { Id: 1, UserId: 38 }; const start = { type: 'NOTE', note }; context.store.dispatch(start); }); function checkDataIsReady(args) { if(notAllDataIsHereYet()) return; checkUserRecord();
تكمن الفارق الأساسي في أننا نعد قواعد تكوين الاستعلام مقدمًا context.rules
في سياق القاموس. يوجد هذا القاموس والكائنات الأخرى الضرورية لتنفيذ الاستعلامات وحفظ النتائج في السياق الذي context.db
تخزين قاعدة البيانات الذي تم تكوينه مسبقًا. context.store
، context.store
تخزين حاوية الحالة المُكوَّن مسبقًا ، والقاموس المذكور آنفًا.
في هذه الحالة ، يمكن أن تحتوي قواعد تكوين الاستعلام على كل من بيانات السلسلة العادية ، على سبيل المثال ، اسم الجدول الذي ينبغي طلب البيانات منه ، وكذلك أساليب المصنع التي تنشئ استعلامات إلى قاعدة البيانات وترسل الأساليب التي ترسل الإجراءات إلى حاوية الحالة. في هذه الحالة ، يبدو تكوين الأوامر اللازمة مختلفًا تمامًا عما يقترحه الرمز الموجود.
مثل هذا الحل المعماري يسمح لنا ، من بين أشياء أخرى ، بتحديد مستويات مختلفة من اختبارات KYC ، وذلك ببساطة في شكل مجموعات من السلاسل ( Set
) ، والتي تستخدم كمفاتيح عند تخزين قواعد تكوين الاستعلام. على سبيل المثال ، إذا أردنا إرسال البيانات الشخصية وعنوانًا للتحقق فقط ، فنحن ببساطة نضع المفاتيح المقابلة في مجموعة من الأسطر: user
person
address
.
يُظهر الاختبار أعلاه خيار التكوين الأقصى ، متجاوزًا قاموس القواعد بالكامل وإعداد رمز استعلام معمم ، في جداول محددة. حسنًا ، كما ترون في الكود أدناه ، سيحدث الإطلاق الفعلي للطلبات كرد فعل لأحداث حاوية تغيير الحالة:
let handle = requestHandler.bind(context, [key]); context.store.subscribe(handle);
لن يكون هناك أي وصف لعملية التنفيذ في جميع تفاصيل تقشعر لها الأبدان اليوم ، لأنه لم يحدث بعد ...