NUnit和TestCaseAttribute,参数的交叉连接可能吗?

ang*_*son 12 c# nunit testcaseattribute

我有一个测试各种情况的单元测试,如下所示:

public void Test1(Int32 a, Int32 b, Int32 c)
Run Code Online (Sandbox Code Playgroud)

假设我想创建没有循环的测试代码,所以我想使用TestCase来指定这样的参数:

[TestCase(1, 1, 1)]
public void Test1(Int32 a, Int32 b, Int32 c)
Run Code Online (Sandbox Code Playgroud)

我有可能用这个属性这样说:

  • 对于第一个参数,这是一组值
  • 对于第二个参数,这是一组值
  • 对于第三个参数,这是一组值
  • 现在,测试上面的所有组合

IE浏览器.这样的事情:

[TestCase(new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 4 })]
public void Test1(Int32 a, Int32 b, Int32 c)
Run Code Online (Sandbox Code Playgroud)

看起来不像,但也许我忽略了什么?

Boj*_*nik 13

NUnit提供了Values属性,可以与Combinatorial属性一起使用来实现:

[Test, Combinatorial]
public void Test1( 
    [Values(1,2,3,4)] Int32 a, 
    [Values(1,2,3,4)] Int32 b, 
    [Values(1,2,3,4)] Int32 c
)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)