我正在尝试使用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
。那是为什么?
答案 0 :(得分:2)
我认为这是因为Datapoints必须将Types与DatapointAttribute匹配。来自数据点上的NUnit help:
当加载Theory时,NUnit通过使用与DatapointAttribute注释的参数相同类型的任何字段为其每个参数创建参数。此外,还使用了使用DatapointsAttribute注释的所需类型的数组元素。