C# كيفية اختبار ميراث فئة مجردة مع طرق محمية مع Xunit

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

  •  28-09-2019
  •  | 
  •  

سؤال

افترض أن لدي فئة A العامة و Class Bergant Class B بحيث لا يحتوي B فقط على طرق محمية. الآن دع وراثة من B.

سؤالي الآن هو كيف يمكنني (أو يجب أن أقوم باختبار ما إذا كانت ورث من B.

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

المحلول

باستخدام تعدد الأشكال ، ستكون بالتأكيد قادرًا على القيام بما يلي:

public class ClassB {
    protected MethodB() {
    }
}

public class ClassA : ClassB {
}


[TestFixture()]
public class TestA {
    [Test()]
    public void IsInstanceOfB() {
        ClassA a = new ClassA();
        Assert.IsInstanceOf(typeof(ClassB), a);
    }
}

هذا يستخدم Nunit ، أعتقد أنه قد يكون هناك نهج مماثل مع Xunit.

نصائح أخرى

المشكلة هنا هي رؤية تلك الأساليب المحمية. لن تتمكن من الاتصال بهم مباشرة في اختبار الوحدة الخاص بك. من ناحية أخرى ، يمكنك كتابة فئة C في اختبار وحدتك التي ترث من A والتي تعرض بعض الأساليب العامة لأغراض الاختبار. ستستدعي تلك الأساليب العامة ببساطة الأساليب المحمية التي تحاول اختبارها.

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