代码之家  ›  专栏  ›  技术社区  ›  The Chairman

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

  •  2
  • The Chairman  · 技术社区  · 14 年前

    我想利用这个机会 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)
    {
      // ...
    }
    

    努尼特警告说 No arguments were provided . 为什么?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Paddyslacker    14 年前

    我认为这是因为Datapoints必须将类型与DatapointAttribute匹配。从 NUnit help 关于数据点:

    加载理论时,NUnit会使用任何字段为每个参数创建参数 作为用DatapointAttribute注释的参数。此外,还使用DatapointsAttribute注释的所需类型的数组元素。