أين تتناول السخرية - تبعيات فورية ، أو هل تنمو الحدود ...؟

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

سؤال

لذلك ، أنا جديد بشكل معقول على كل من اختبار الوحدة والسخرية في C# و .NET ؛ أنا أستخدم Xunit.net و Rhino يسخر على التوالي. أنا تحويل ، وأنا أركز على كتابة مواصفات السلوك ، على ما أعتقد ، بدلاً من أن أكون TDD بحت. باه ، دلالات ؛ أريد أن تعمل شبكة أمان آلية أعلاه ، بشكل أساسي.

لقد صدمني الفكر رغم ذلك. أحصل على البرمجة ضد الواجهات ، والفوائد بقدر ما تذهب التبعيات إلى هناك. مُباع. ومع ذلك ، في جناح التحقق من السلوكي (AKA Unit Tests ؛-)) ، أنا أؤكد السلوك واجهة واحدة في وقت واحد. كما هو الحال في تنفيذ واجهة واحدة في وقت واحد ، مع تسهيل جميع تبعياتها وإعداد التوقعات.

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

العودة إلى الفكر ، على الرغم من. هل هناك أي قيمة في اختبارات التكامل شبه ، حيث يؤكد تحديد الاختبار ضد وحدة من التطبيقات الملموسة التي يتم توصيلها معًا ، ونحن نختبر سلوكه الداخلي ضد التبعيات المهمة؟ أنا فقط أعيد قراءة ذلك وأعتقد أنني ربما كان من الممكن أن صاغته بشكل أفضل. من الواضح ، سيكون هناك قدر معين من "حسنًا ، إذا أضاف قيمة لك ، واصل القيام بذلك" ، أفترض - لكن هل فكر أي شخص آخر في القيام بذلك ، وجني فوائد تفوق على التكاليف؟

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

المحلول

تمت مناقشة سؤالك لسنوات ويمكن أيضًا إعادة صياغة "ما هي الوحدة"؟

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

المكان الوحيد الذي أستخدمه تمامًا من نوع أو آخر هو اتباع مايكل فيذر قواعد اختبار الوحدة.

نصائح أخرى

لا أرى قيمة في اختبارات التكامل التي تربط بين الفئات الداخلية القابلة للاختبار بالكامل.

يبدو لي أن القيمة في اختبارات التكامل هي المكان الذي يلمس فيه النظام الأساسي أو الواجهات الخارجية ، أي عقود لا يمكنك اختبار الوحدة.

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