حفظ الكائن في التصحيح ومن استخدامه بمثابة كعب في الاختبارات

StackOverflow https://stackoverflow.com/questions/1802725

سؤال

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

mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);

وعلى افتراض mySavedObject - ضخمة بما فيه الكفاية، لذلك أنا لا أريد لتوليد يدويا أو كتابة التعليمات البرمجية جيل خاص. أريد فقط أن تكون قادرة على إجراء تسلسل وحفظه في مكان ما خلال جلسة تصحيح أخطاء ثم إلغاء تسلسل عليها وتمريرها إلى thenReturn في الاختبارات. هل هناك وسيلة معيارية للقيام بذلك؟ إن لم يكن كيف يكون أفضل لتنفيذ هذا النهج؟

هل كانت مفيدة؟

المحلول

أنا <م> قيام الحب لديك فكرة، انها رهيبة!

وأنا لست على علم مكتبة التي من شأنها أن توفر هذه الميزة من خارج منطقة الجزاء. يمكنك محاولة استخدام ObjectOutoutStream وObjectInputStream (أي التسلسل جافا قياسي) إذا الكائنات الخاصة بك تنفيذ جميع Seriablizable. عادة لم يفعلوا ذلك. في هذه الحالة، قد يكون لديك أكثر حظا باستخدام القناة Xstream أو أحد أصدقائها.

نصائح أخرى

ونحن عادة يسخرون من DB بأكمله هو مثل هذه السيناريوهات، إعادة استخدام (وضمنا اختبار) رمز لتحميل فئات من DB.

وعلى وجه التحديد، الاختبارات وحدتنا تشغيل مقابل قاعدة بيانات في الذاكرة ( HSQLDB ) ، ونحن تهيئة قبل كل اختبار تشغيل عن طريق استيراد بيانات الاختبار.

هل لديك نظرة على الفول المدارة الديناميكية - وهذا يوفر وسيلة لتغيير قيم على التوالي تطبيق جافا. ربما هناك طريقة لتحديد MBean الذي يحمل شجرة الخاص بك، وقراءة شجرة، واحفظها في مكان ما وحقنه مرة أخرى في وقت لاحق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top