بسيطة وموثوقة في قاعدة بيانات الذاكرة لاختبارات تكامل Java السريعة بدعم من JPA
-
27-09-2019 - |
سؤال
سيتم تشغيل اختبارات التكامل الخاصة بي بشكل أسرع بكثير إذا استخدمت database في الذاكرة بدلاً من postgresql. أستخدم JPA (Hibernate) وأحتاج إلى database داخل الذاكرة سيكون من السهل التبديل إلى استخدام JPA وسهل الإعداد والموثوقة. يحتاج إلى دعم JPA و Hibernate (أو VICE VERSE إن شئت) على نطاق واسع لأنه ليس لدي رغبة في تبني رمز الوصول إلى البيانات الخاص بي للاختبارات.
ما هي قاعدة البيانات هي الخيار الأفضل المتطلبات المذكورة أعلاه؟
نصائح أخرى
لقد كنت أستخدم HSQLDB في الذاكرة لاختبار التكامل jpa/hibernate الثبات في جافا. يبدأ بسرعة كبيرة ، لا يتطلب أي إعداد خاص.
كانت المشكلة الوحيدة التي رأيتها حتى الآن مع استخدام HSQLDB مع السبات هي العلاقة مع حجم الدُفعات التي تحتاج إلى ضبطها على 0 ، ولكن قد يكون ذلك مرتبطًا بإصدار قديم. سآخذ حفرًا ومعرفة ما إذا كان بإمكاني العثور على تفاصيل عن هذه المشكلة.
يدعم ديربي وضع الذاكرة في هذه الأيام ، لم يعد تجريبيًا.
أنا استخدم ديربي. لسبب واحد ، يكون حوالي 3 أسطر أقل من الكود لكل اختبار وحدة حيث لا توجد حاجة لإغلاق بعد الاختبار. ومع ذلك ، تحتاج إلى استخدام تطبيق JPA الذي يمكن أن يسقط وإنشاء جداول مثل Eclipselink.
يمكن لـ Derby أيضًا تهيئة قاعدة بيانات جديدة في الذاكرة من ملف حتى تتمكن من الحصول على قاعدة بيانات مرجعية والعودة إليها في أي وقت.
على الرغم من أن اختبار الوحدة ، أفضل إنشاء كائناتي في منطق اختبار الوحدة الخاص بي ، أجد أنه من الأسهل خاصة مع JPA لأنه يتيح لي المرونة للقيام بإنشاءات لا داعي للقلق بشأن بنية قاعدة البيانات الأساسية ، وأدوات أخرى مثل DBUnit الاعتماد على بنية ثابتة وإعادة تهيئة بشكل عملي يعني تغيير DBUNIT XMLS يدويًا بدلاً من الاعتماد على قدرات إعادة بناء Eclipse.