هل من الممكن لاختبار وحدة الصف أن يجعل P/استدعاء المكالمات ؟

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

سؤال

أريد أن التفاف قطعة من التعليمات البرمجية التي تستخدم ويندوز الانتحال API في أنيق قليلا فئة المساعد, و كالعادة, أنا أبحث عن وسيلة للذهاب الاختبار الأول.ومع ذلك ، في حين WindowsIdentity هو إدارتها ، LogonUser الدعوة المطلوبة في الواقع إجراء تسجيل الدخول كمستخدم آخر هو غير مدارة وظيفة في advapi32.dll.

أعتقد أن هذا الأمر من خلال إدخال واجهة بلدي المساعد من الدرجة استخدام إخفاء P/استدعاء المكالمات في التنفيذ ، ولكن التجارب أن التنفيذ لا يزال يمثل مشكلة.و يمكنك أن تتخيل في الواقع أداء الانتحال في الاختبار يمكن أن يكون قليلا إشكالية بالنظر إلى أن المستخدم سوف تحتاج في الواقع موجودة على النظام.

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

المحلول

التوجيهي:لا اختبار التعليمات البرمجية التي لم تكن مكتوبة.
يجب أن لا تكون قلقة مع WinAPI التنفيذ لا تعمل (على الأرجح أنه يعمل كما هو متوقع).القلق الخاص بك يجب أن يكون اختبار 'الأسلاك' أيإذا كان لديك كود يجعل الحق WinAPI الاتصال.في هذه الحالة كل ما عليك هو أن يسخر من واجهة والسماح إطار وهمية تقول إن الاتصال تم مع الحق params.إذا كان الجواب نعم ، أنت القيام به.

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

نصائح أخرى

أنا لست متأكدا إذا أنا متابعة لكم..كنت لا ترغب في اختبار PInvoke نفسك (لم يكتب) إذا كنت ترغب في اختبار هذا المجمع الدرجة هو المنفذ كما هو متوقع صحيح ؟

لذا فقط إنشاء واجهة الخاص بك في المجمع الدرجة واختبار ضد ذلك ؟

حيث الحاجة إلى إعداد حسابات المستخدمين وما إلى ذلك, أعتقد أن هذا سيكون رصاصة تحتاج إلى لدغة.قد يبدو غريبا أن يسخر مجمع PInvoke الدعوة ، منذ كنت ببساطة مجرد تأكيد واجهة موجود :)

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