为什么NUnit在理论中使用泛型时会忽略数据点

时间:2010-03-12 07:10:33

标签: generics nunit theory

我正在尝试使用NUnit 2.5中引入的TheoryAttribute。只要参数是定义类型,一切正常:

[Datapoint]
public double[,] Array2X2 = new double[,] { { 1, 0 }, { 0, 1 } };

[Theory]
public void TestForArbitraryArray(double[,] array)
{
  // ...
}

当我使用泛型时,它不起作用:

[Datapoint]
public double[,] Array2X2 = new double[,] { { 1, 0 }, { 0, 1 } };

[Theory]
public void TestForArbitraryArray<T>(T[,] array)
{
  // ...
}

NUnit发出警告No arguments were provided。那是为什么?

1 个答案:

答案 0 :(得分:2)

我认为这是因为Datapoints必须将Types与DatapointAttribute匹配。来自数据点上的NUnit help

  

当加载Theory时,NUnit通过使用与DatapointAttribute注释的参数相同类型的任何字段为其每个参数创建参数。此外,还使用了使用DatapointsAttribute注释的所需类型的数组元素。