我在使用xUnit时尝试将变量用作InlineData。
看起来像这样:
static string home = "test";
[Theory]
[InlineData(home)]
public void AddTest(string location)
{
Assert.True(LocationIs(location));
}
但是我收到错误:“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”
我有什么方法可以做我正在尝试的事情吗?或者我是否需要对内联数据进行硬编码。
答案 0 :(得分:2)
你可以用const string home = "test"
来做,因为这将是一个常量表达式。
您还可以使用MemberData
属性来指向yield return new object[]{ "test" };
的内容,在这种情况下会更复杂,但在不必保持不变方面更灵活,并允许您产生许多这样的数组,以便在不同的数据集上重复进行测试。