هل يمكن تغيير التركيب ديناميكيًا بين طرق الاختبار في CakePHP؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

هل من الممكن تغيير التركيب بين طرق الاختبار؟إذا كان الأمر كذلك، كيف يمكنني أن أفعل هذا؟

بناء الجملة الخاص بي لهذه المشكلة:

في إطار عمل cakephp، أقوم ببناء اختبارات للسلوك الذي تم تكوينه عن طريق إضافة حقول إلى الجدول.يهدف هذا إلى العمل بنفس الطريقة التي سيؤدي بها إضافة الحقول "التي تم إنشاؤها" و "المعدلة" إلى تحصيل هذه الحقول على الحفظ.

لاختبار هذا أنا استطاع قم بإنشاء العشرات من مجموعات التركيبات/النماذج لاختبار الإعدادات المختلفة، ولكن سيكون من الأفضل والأسرع والأسهل مائة مرة أن يتم تغيير "شكل" التركيبات بين طرق الاختبار.

إذا لم تكن على دراية إطار عمل CakePHP, ، ربما لا يزال بإمكانك مساعدتي أثناء استخدامه اختبار بسيط

يحرر:إعادة صياغة السؤال ليكون أكثر عمومية

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

المحلول

لست على دراية بـ CakePHP على وجه التحديد، ولكن يبدو أن هذا النوع من الأشياء يحدث في أي مكان مع التركيبات.

لا توجد طريقة مدمجة في القضبان على الأقل لحدوث ذلك، ولا أتخيل ذلك في cakePHP أو في أي مكان آخر أيضًا لأن الفكرة الكاملة للتركيب هي أنه مُثَبَّت

هناك حلان "لائقان" أعرفهما

  • اكتب changefixture الطريقة، وقبل القيام بالتأكيدات/إلخ، قم بتشغيلها باستخدام معلمات ما يجب تغييره.يجب أن يذهب ويحدث قاعدة البيانات أو أي شيء يجب القيام به.

  • لا تستخدم التركيبات على الإطلاق، واستخدم نوعًا من مصنع الكائنات أو منشئ الكائنات لإنشاء كائناتك في كل مرة

نصائح أخرى

هذه ليست إجابة على سؤالي، ولكنها حل لمثال مشكلتي.

بدلاً من استخدام تركيبات متعددة أو تغيير التركيبات، أقوم بتحرير صفائف Model::_schema عن طريق إزالة الحقول التي أردت الاختبار بدونها.وهذا يؤدي إلى أن النموذج يعمل كما لو أن الحقول غير موجودة، لكنني لست متأكدًا مما إذا كان هذا اختبارًا بنسبة 100%.لا أعتقد أن هذا ينطبق على جميع الحالات، ولكنه يعمل بالنسبة لمثالي.

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