我该如何为抽象类的具体方法设计和组织测试?特别是在.NET中。
您需要创建一个子类来实现抽象方法(使用空方法),但不要实现任何具体方法。这个子类只用于测试(永远不应该出现在生产代码中)。在单元测试中忽略覆盖的抽象方法,专注于具体方法。
首先想到的是在具体的子类中测试这些方法。
有什么理由不将其包含在一个实例的测试中呢?
如果这行不通,你可能可以创建一个子类,专门用于测试,没有自己独特的功能。
我总是使用存根/模拟对象
你需要定义并创建一个继承自抽象类的具体测试类。通常它将是一个轻量级的桥接器,仅仅是通过调用而已。