Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 测试抽象类具体方法_C#_.net_Unit Testing - Fatal编程技术网

C# 测试抽象类具体方法

C# 测试抽象类具体方法,c#,.net,unit-testing,C#,.net,Unit Testing,我如何为抽象类的具体方法设计和组织测试?特别是在.NET中。有什么理由不在其中一个实例的测试中只包含这些内容 如果这不起作用,您可能只需要创建一个子类来进行测试,而没有自己独特的功能。首先想到的是在一个具体的子类中测试这些方法。您必须创建一个实现抽象方法(使用空方法)的子类,但不能创建任何具体方法。这个子类应该只用于测试(它不应该进入生产代码)。只要忽略单元测试中被重写的抽象方法,集中精力于具体方法。我总是使用存根/模拟对象。您必须定义并创建一个从抽象中继承的具体测试类。通常,它会是一个轻的垫片

我如何为抽象类的具体方法设计和组织测试?特别是在.NET中。

有什么理由不在其中一个实例的测试中只包含这些内容


如果这不起作用,您可能只需要创建一个子类来进行测试,而没有自己独特的功能。

首先想到的是在一个具体的子类中测试这些方法。

您必须创建一个实现抽象方法(使用空方法)的子类,但不能创建任何具体方法。这个子类应该只用于测试(它不应该进入生产代码)。只要忽略单元测试中被重写的抽象方法,集中精力于具体方法。

我总是使用存根/模拟对象。

您必须定义并创建一个从抽象中继承的具体测试类。通常,它会是一个轻的垫片,它只会通过调用。< /P> < P>使用Ryo模拟,它可以在运行时生成抽象类的实现,并且可以调用非抽象方法。

此外,如果你有很多这些(超过2或3),你应该考虑使用像R犀牛这样的嘲讽框架。(免费)或TypeMock(商业)并执行“PartialMock”,这将为您实现此过程的自动化一个原因可能是我们没有定义具体的类,只是定义抽象。或者,知道测试失败不是因为某个抽象方法。