将内联变量添加到xUnit理论中

时间:2016-04-05 14:36:21

标签: c# xunit

我在使用xUnit时尝试将变量用作InlineData。

看起来像这样:

static string home = "test";

[Theory]
[InlineData(home)]
public void AddTest(string location)
{
    Assert.True(LocationIs(location));
}

但是我收到错误:“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”

我有什么方法可以做我正在尝试的事情吗?或者我是否需要对内联数据进行硬编码。

1 个答案:

答案 0 :(得分:2)

你可以用const string home = "test"来做,因为这将是一个常量表达式。

您还可以使用MemberData属性来指向yield return new object[]{ "test" };的内容,在这种情况下会更复杂,但在不必保持不变方面更灵活,并允许您产生许多这样的数组,以便在不同的数据集上重复进行测试。