سؤال

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

شكرًا

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

المحلول

لديك في الأساس خياران: Eiter Abstract جميع المنطق المتعلق بنظام الملفات وراء أ IFileSystemService, ، او استعمل كعب من Microsoft ، وهو

... إطار خفيف الوزن لـ .NET الذي يوفر كعب الاختبار. بالنسبة للواجهات والفئات غير المختلطة ، يتم إنشاء أغلفة آمنة من النوع يمكن تخصيصها بسهولة عن طريق ربط المندوبين.

نصائح أخرى

يعد نظام الملفات مثالًا ممتازًا على كيفية قيام TDD بك نحو تصميم أفضل وأكثر مرونة. في كثير من الأحيان ، عندما تتفاعل مع نظام الملفات ، يمكنك التعامل مع القراءة والكتابة باستخدام الملفات باستخدام تيارات أو النصوص بدلا من الملفات الفعلية.

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

الآن لديك واجهة برمجة تطبيقات أكثر مرونة لأنها ليست مقترنة بإحكام مع نظام الملفات ، ولكن لا تزال تدعم عمليات الملفات.

هذه مطلوب: واجهات نظام الملفات والتنفيذ في .NET من الممكن ان يكون مفيدا

إخلاء المسئولية أعمل في Typemock.

يسعدني أن أقول ، إن إصداراتنا الأخيرة تدعم الأنواع التالية من System.io السخرية:

  • ملف
  • الدليل
  • تيار ملف

هناك مثال قصير:

public void Test()
{
    string path = @"C:\TypemockCan.txt";

    Isolate.WhenCalled(() => File.Exists(null)).WillReturn(true);

    Assert.IsTrue(File.Exists(path));
}

شاهد المزيد أمثلة.

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