如何在MSTest DataRow中将属性作为参数传递

1 c# unit-testing mstest

我在使用MSTest的单元测试中有一个DataTestMethod,在构造函数中有一个string属性,例如,我有以下代码:

[DataTestMethod]
[DataRow("test")] 
[DataRow(stringproperty)] // How is this?

public void TestMethod(string test) {
    Assert.AreEqual("test", test);
}
Run Code Online (Sandbox Code Playgroud)

是否可以在DataRow中将属性作为参数传递?

谢谢。

小智 5

是的,如果您使用DynamicDataAttribute

[DynamicData("TestMethodInput")]
[DataTestMethod]
public void TestMethod(string test)
{
    Assert.AreEqual("test", test);
}

public static IEnumerable<object[]> TestMethodInput
{
    get
    {
        return new[]
        {
            new object[] { stringproperty },
            new object[] { "test" }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)