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