سؤال

معظم أو جميع كائنات Endeca لها منشئات داخلية. أنا أعمل على مشروع جيد يفتقر إلى تغطية اختبار رائعة حول API Endeca ، هل هناك أي استراتيجيات جيدة لاختبار الوحدة التفاعلات مع Endeca؟

حتى الآن أفضل ما لدينا هو نوع من نمط محول الرجل الفقير:

public class DimValue : IDimValue
{
    public DimValue(Dimension dim, DimVal dimValue)
    {
        Dimension = dim;
        Value = dimValue;
    }

    public virtual bool IsNavigable()
    {
        return Value.IsNavigable();
    }

    public virtual long Id()
    {
        return Value.Id;
    }

    // and so on...
}

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

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

المحلول

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

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

كان لدى Resharper ميزة رائعة لإنشاء فصول غلاف. قم بإنشاء فصل ، أضف عضوًا هو النوع الذي تريد لفه .. ثم قم بإطلاق إعادة إنشاء مندوبي إنشاء. اختر "All Public" وهناك تذهب .. فصل واحد ملفوف.

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

إذا كنت تختبر واجهة برمجة تطبيقات Endeca كشكل من أشكال جناح الانحدار بحيث يمكنك بسهولة قبول جديد من API ، فأنا فقط أكتب اختبارات على مستوى "قبول أكثر" ؛ ممارسة واجهة برمجة التطبيقات التي يعطونها لك. ولكن مرة أخرى ، اختبر فقط الطرق التي تستخدمها بالفعل في واجهة برمجة التطبيقات الخاصة بهم.

سأفعل النهج أعلاه ، ولكن ...

سوف يتيح لك Typemock السخرية من الفصول الدراسية بدون واجهات ، بحيث قد يسمح بذلك نهجًا آخر.

أتمنى أن يساعدك هذا.

نصائح أخرى

معظم فصول Endeca ملموسة ، لذا من الصعب إجراء اختبار الوحدة ، في مشروعنا الأخير ، يجب أن نحدد أنفسنا طبقة مجردة ، بالضبط كانت طبقة واجهة بين الكود الخاص بنا و endeca API eg iendecaquery. مع طبقة التجريد هذه ، يمكننا إجراء اختبار بسرعة دون أي وصول حقيقي لـ Endeca ، فأنت تعلم أن فتح اتصال Endeca سيكلفك عدة ثوانٍ في كل مرة. لقد كان الكثير من العمل لتنفيذ جميع الأشياء المزيفة اللازمة. كان تطبيقنا موقعًا للتجارة الإلكترونية وقد استخدمنا Endeca لجميع قوائم المنتجات ، والبحث عن وظائف البحث.

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