يجب أن وحدة طرق الاختبار التي ورثتها من سوبر الصف ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

أنا حاليا كتابة تنفيذ JDBC driver (نعم ، يمكنك أن تقرأ بشكل صحيح) في TDD بطريقة وبينما أنا فقط الانتهاء من صنف بذرة في هذه النقطة فقط بعض التعديلات وظائف, انها مجرد حدث لي منذ Statement هي المتفوقة على PreparedStatement وهو الفائقة على CallableStatement, ماذا علي أن أفعل عندما كنت حقا البدء في كتابة الاختبارات بلدي تطبيقات تلك الفئات التي يجب أن أفعل:

  1. إنشاء اختبار جناح Statement ثم يمتد هذا الجناح لمزيد من الاختبارات PreparedStatement ثم تفعل الشيء نفسه بالنسبة CallableStatement.
  2. اختبار كل تطبيق على حدة تجاهل الأساليب الموروثة من المتفوقة(es).
  3. اختبار صارم في كل طريقة على حدة لكل التنفيذ الفئة ، فمن الممكن أن بعض الأساليب الموروثة تعمل بشكل مختلف اعتمادا على التنفيذ بعد كل شيء.معتدل الاختلاف من هذا يكون أن كنت اختبار كل تلك الأساليب الموروثة تنفيذ الاستخدامات.

عدد اثنين يشعر أكثر طبيعية ولكن نظرا السبب في أنني وضعت الثالث أنا لست متأكدا مما إذا كان سوف يكون من الحكمة القيام بذلك.ماذا لك أعتقد أنني يجب أن أفعل ؟

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

المحلول

وأود على وجه التحديد لم تفعل بديلة 1 (السماح الاختبار من الدرجة التسلسل الهرمي نفس الدرجة الفعلية الهرمي) إذا هذا يعني أنك سوف تكون قيد التشغيل على نفس الاختبارات مرارا وتكرارا لكل اختبار فرعية.أنا أيضا عموما يشككون في subclassing اختبار فئات أخرى من المنافع العامة الفئة الأساسية.

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

نصائح أخرى

"اختبار كل طريقة على حدة لكل فئة تطبيق"

ولا سيما عدم تجاوز الفائقة الطريقة بشكل صحيح هو علة المشترك.صاحب فرعية يجعل افتراضات حول الفائقة.المتفوقة التغييرات فرعية هي الآن مكسورة.

توفير ما يكفي من الاختبارات حتى تشعر بالراحة - بناء على معرفتك التنفيذ.أنا لا علاج اختبار الوحدة تماما الصندوق الأسود الاختبار.إذا كنت تعرف أن قاعدة الطبقة لم يدعو أي طرق افتراضية (أو على الأقل لا أن يتم تجاوز) ثم لاحظ أن الواقع ولكن لا على نحو فعال تكرار وحدة الاختبارات التي كنت قد حصلت بالفعل.

اختبار وحدة بالتأكيد يمكن أن تؤخذ إلى التطرف - انها دائما يستحق موازنة القيمة التي تحصل عليها من ذلك مع جهد هو تقدير لكم.

مع TDD, يجب أن لا تهدف إلى طرق الاختبار ، ولكن السلوك ، أو قدرات التعليمات البرمجية الخاصة بك.لذلك ، عند تنفيذ فرعية ، يمكنك تقييد الاختبار فقط على السلوكيات التي تختلف عن الفئة الأساسية.عندما تكون في شك ، كتابة اختبار جديد.

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