سؤال

أنا أتابع دورة في الممارسات الرشيقة ولدي واجب منزلي.ما علموني ، هو أنه قبل تغيير التعليمات البرمجية (إعادة بيع ديون أو إضافة وظائف) وأود أن أضيف بعض الاختبار ، من أجل اكتساب الثقة والتأكد من أنني لن تغيير السلوك أثناء إعادة بيع ديون.هذا واضح ومن المنطقي, ولكن ماذا لو كان رمز غير قابل للاختبار دون القيام ببعض إعادة بيع ديون أولا?

مثال بسيط:

public class Summation
{
    private int addend1;
    private int addend2;

    public Summation(int addend1, int addend2)
    {
        this.addend1 = addend1;
        this.addend2 = addend2;
    }

    public int doSum()
    {
        System.out.println(addend1 + addend2);
    }

    // Getters/setters
}

أرغب في إجراء اختبار قبول / تكامل باستخدام الملاءمة ، والتحقق من التحقق من الجدول التالي:

 ----------------------------
| addend1 | addend2 | result |
 ----------------------------
| 1       | 1       | 2      |
 ----------------------------
| 1       | -1      | 0      |
 ----------------------------
| -1      | 1       | 0      |
 ----------------------------
| -1      | -1      | -2     |
 ----------------------------

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

هل يمكنك أن تعطيني أي تلميحات?كيف يمكنك المضي قدما?

شكرا لك!

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

المحلول

يبدو مشابها ل هذا السؤال.

سواء كان مسموحا لك بتغيير الرمز أم لا ، فأنت مجبر على اعتراض دفق الإخراج القياسي.على أي حال ، إنه جزء من السلوك.

نصائح أخرى

يمكنك كتابة اختبار.ملف حزب الشعب الكمبودي لاستدعاء الجمع.الجمع (س ، ص) مع قيم مختلفة ل س و ص في الجدول الخاص بك والتحقق/تسجيل النتائج.تأكد من أن النتائج هي ما تتوقعه.بعد ذلك ، يمكنك الآن تحرير فئة الجمع وتشغيل الاختبارات الخاصة بك مرة أخرى (من الاختبار.حزب الشعب الكمبودي) لضمان القيم هي نفسها كما كانت في البداية.

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