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

时间:2017-11-15 01:50:55

标签: c# unit-testing mstest

我在使用MSTest的单元测试中有一个DataTestMethod,我的构造函数中有一个字符串属性,比方说我有这个代码:

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

public void TestMethod(string test) {
    Assert.AreEqual("test", test);
}

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

感谢。

3 个答案:

答案 0 :(得分:5)

如果您使用DynamicDataAttribute

,则为是
zookeeper

答案 1 :(得分:1)

作为改进,使用

[DynamicData(nameof(TestMethodInput))]

代替[DynamicData("TestMethodInput")]

此后在C#中引入的nameof关键字可确保遵循所有重命名重构,并在编译时捕获命名错误。

答案 2 :(得分:0)

Try this

private List<string> testData=new List<string>();
testData.Add("test");
testData.Add("test1");

private IEnumerable<object[]> ListOfTestData =>
    new List<string[]> 
    {
        new[] {testData[0]},
        new[] {testData[1]}
    };

[DataTestMethod]
[DynamicData (nameof (ListOfTestData))]
public void TestMethod(string test) 
{
    Assert.AreEqual("test", test);
}
Source: https://dev.to/frannsoft/mstest-v2---new-old-kid-on-the-block