有没有一种方法可以为单个方法编写用于多个空arg验证的通用单元测试?

时间:2018-12-18 17:01:44

标签: unit-testing nunit xunit xunit.net

我有一个带有4个字符串参数的方法。每个参数都存在一个空参数验证保护。有没有一种方法可以编写单个 xUnit null验证单元测试来通用地测试所有这四个参数?

1 个答案:

答案 0 :(得分:0)

坦率地说,这似乎不是一件非常有用的事情。 :-)但是...

在NUnit中,您可以执行以下操作

[TestCase(null, "b", "c", "d")]
[TestCase("a", null, "c", "d")]
[TestCase("a", "b", null, "d")]
[TestCase("a", "b", "c", null)]
public void NullArgDetected(string a, string b, string c, string d)
{
    // call method and assert that it throws
}

您当然必须更改参数类型以匹配您要调用的方法。如果C#不允许将该类型用作Attribute构造函数参数,则需要使用[TestCaseSource]而不是[TestCase]。

就我个人而言,如果我有10个参数,我可能会这样做。对于四个,我将只编写四个单独的测试方法。