c# - 如何对抽象类的虚方法进行单元测试?

标签 c# unit-testing virtual abstract

我有一个 C# 抽象类,它在虚拟方法中有行为。我需要在该虚拟方法中对该行为进行单元测试(没有问题:何时调用该方法)。我看到三个选项:

1) 创建抽象类的虚拟实现
2) 使用 child 调用虚拟方法(每个 child 实现重复测试)
3)这里有人指出的另一种选择

我倾向于#1。这是测试这种行为的最聪明的方法吗?

最佳答案

理想情况下,您希望只测试那个类,因此创建一个虚拟实现。如果您使用的是支持模拟类的模拟框架,那可能是最简单的方法。如果您的虚拟方法调用抽象类中定义的抽象(或虚拟)方法,则模拟框架将允许您验证这些调用是否发生。 (另一方面,如果您对结果比测试抽象类及其子类之间涉及的确切协议(protocol)更感兴趣,您可能希望使用模拟框架创建一个 stub 。 )

关于c# - 如何对抽象类的虚方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960378/

相关文章:

python-3.x - 文件上传 flask 的单元测试用例

PHPSpec:输出格式的配置

c++ - 测试虚函数的开销

c# - 如何随机生成1000个6位数字序列

c# - 重构 session 检查

c# - WPF 应用程序中的 MVVM 符合本地化

c++ - 虚拟公共(public)继承?需要帮助理解代码

c# - 使用 Selenium WebDriver C# 在下拉列表中选择每个选项

unit-testing - os.FileInfo 模拟不匹配

c++ - 从派生构造函数调用基类的虚函数