12

我有一个单元测试可以测试各种案例,如下所示:

public void Test1(Int32 a, Int32 b, Int32 c)

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

[TestCase(1, 1, 1)]
public void Test1(Int32 a, Int32 b, Int32 c)

有这个属性的我是否可以这样说:

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

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)

看起来不像,但也许我忽略了一些东西?

4

1 回答 1

14

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
)
{
    ...
}
于 2009-10-23T08:49:06.960 回答