0

假设我有一个公共类 A 和一个抽象类 B,这样 B 只包含受保护的方法。现在让 A 从 B 继承。

现在我的问题是我(或者我应该)如何测试 A 是否继承自 B。

4

2 回答 2

1

这里的问题是这些受保护方法的可见性。您将无法在单元测试中直接调用它们。另一方面,您可以在单元测试中编写一个类 C,它继承自 A,并为测试目的公开一些公共方法。这些公共方法将简单地调用您尝试测试的受保护方法。

于 2010-11-25T09:44:14.307 回答
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 可能有类似的方法。

于 2010-11-25T15:29:20.463 回答