如何使用XUnit测试方法参数类型锯齿状数组

时间:2017-08-29 10:54:23

标签: c# .net xunit xunit.net

如何测试采用string [] []类型参数的方法? 我尝试使用 InlineData 属性,但它只适用于字符串[]

publishing {
   publications {
      myPublicationName(MavenPublication) {
         artifact task
      }
   }
}

但不是

[InlineData(new string[]{ "one", "two", "three"})]

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

锯齿状数组作为参数只能通过使用'params'关键字来工作。锯齿状的数组必须是测试方法的最后一个参数。 看看我的例子:

[Theory]
[InlineData(2, 3,
    new[] { "val1", "val2", "val3" },
    new[] { "val4", "val5", "val6" }
)]
[InlineData(3, 2,
    new[] { "val1", "val2" },
    new[] { "val3", "val4" },
    new[] { "val4", "val5" }
)]
public void MyTestMethod(int exptectedOuterCount, int expectedInnerCount, params string[][] myArray)
{
    Assert.Equal(exptectedOuterCount, myArray.Length);

    foreach (var innerArray in myArray)
    {
        Assert.Equal(expectedInnerCount, innerArray.Length);
    }
}

没有params-keyword的编译器不接受锯齿状的数组。