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
C# NUnit:如何为三个函数编写一个通用测试方法?_C#_Unit Testing_Nunit - Fatal编程技术网

C# NUnit:如何为三个函数编写一个通用测试方法?

C# NUnit:如何为三个函数编写一个通用测试方法?,c#,unit-testing,nunit,C#,Unit Testing,Nunit,我在用NUnit。以下是我的要求: 假设有3个函数,即add()、sub()和mul()。如何在Nunit中编写一个通用测试方法 因此,根据函数类型,通用测试方法执行测试 意味着如果我通过了通用测试方法的add(),它应该执行add()等的测试。我不想为3种方法编写3种单独的测试方法 我只想用一种通用的测试方法来实现这一点。这可能吗 您似乎不明白好的单元测试是关于什么的 单元测试的目的是帮助您快速识别故障的根本原因,以便尽快修复它 这从一个简单的事实开始,即对于您打算测试的每个“不同行为”,您都

我在用NUnit。以下是我的要求:

假设有3个函数,即
add()
sub()
mul()
。如何在Nunit中编写一个通用测试方法

因此,根据函数类型,通用测试方法执行测试

意味着如果我通过了通用测试方法的
add()
,它应该执行
add()
等的测试。我不想为3种方法编写3种单独的测试方法


我只想用一种通用的测试方法来实现这一点。这可能吗

您似乎不明白好的单元测试是关于什么的

单元测试的目的是帮助您快速识别故障的根本原因,以便尽快修复它

这从一个简单的事实开始,即对于您打算测试的每个“不同行为”,您都有一个测试。换句话说:你肯定会为你的三种测试方法中的每一种选择一种测试方法

你甚至可以为这三种方法选择多种测试方法;因为“添加到空”可能与“添加到非空”不同


可能您想进行一些“集成”级别的测试,在一个测试用例中真正使用所有三种方法;只是为了确保整个“管道”最终能够正常工作。但是从单元测试级别来看,您可以确保这三种方法在每个方法的级别上都能按预期工作。你知道,当你真正验证了add()在所有可能的情况下都能工作;没有更多的特殊需要来测试它与其他方法的结合

我可以问你为什么不想写3个不同的方法吗?因为如果您试图将所有3个案例塞进一个测试方法中,您可能会得到更多更难阅读的代码。这也提醒了我,普通测试只是个坏主意。我是说它在测试什么?函数调用是否成功?单元测试应该测试有价值的东西。测试应该易于编写。我宁愿有3种方法,很容易阅读,然后找出聪明的代码编写的测试。我甚至不建议在测试中使用继承等。测试应该简单直观。@meganaut感谢您的清晰。您在上面提到,我可以为我的3种方法中的每一种选择一种测试方法。怎么做?你能告诉我怎么走吗?