假设我有一个公共类A和一个抽象类B,这样B只包含受保护的方法。现在让A继承自B。
现在我的问题是我如何(或应该)测试A是否继承自B。
答案 0 :(得分:1)
这里的问题是这些受保护方法的可见性。您将无法在单元测试中直接呼叫它们。另一方面,您可以在单元测试中编写一个C类,它继承自A,并为测试目的公开一些公共方法。这些公共方法只会调用您尝试测试的受保护方法。
答案 1 :(得分:1)
使用多态性,您肯定能够执行以下操作:
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。