我有一个 C# 抽象类,它在虚拟方法中有行为。我需要在该虚拟方法中对该行为进行单元测试(没有问题:何时调用该方法)。我看到三个选项:
1) 创建抽象类的虚拟实现
2) 使用 child 调用虚拟方法(每个 child 实现重复测试)
3)这里有人指出的另一种选择
我倾向于#1。这是测试这种行为的最聪明的方法吗?
最佳答案
理想情况下,您希望只测试那个类,因此创建一个虚拟实现。如果您使用的是支持模拟类的模拟框架,那可能是最简单的方法。如果您的虚拟方法调用抽象类中定义的抽象(或虚拟)方法,则模拟框架将允许您验证这些调用是否发生。 (另一方面,如果您对结果比测试抽象类及其子类之间涉及的确切协议(protocol)更感兴趣,您可能希望使用模拟框架创建一个 stub 。 )
关于c# - 如何对抽象类的虚方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960378/