如何解决C#测试方法中带有参数的DynamicDataAttribute
我正在使用C#中的DataTestMethod,并且我知道有一种方法可以将动态输入生成到DataTestMethod中。像这样的东西。
[DataTestMethod]
[DynamicData(nameof(TestCaseGenerator),DynamicDataSourceType.Method)]
public void TestMethod1(int value1,int value2)
{
Assert.AreEqual(value1.ToString() + value2.ToString(),string.Concat(value1.ToString(),value2.ToString()));
}
public static System.Collections.Generic.IEnumerable<object[]> TestCaseGenerator()
{
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
yield return new object[] { j,i };
}
}
}
我的问题是:
有没有办法将DynamicData与此类参数一起使用?该属性可以从带有参数的方法(在这种情况下为TestCaseGenerator
)中获取参数的值。需要将输入参数3
传递到TestCaseGenerator方法中,然后将TestCaseGenerator的返回值传递到TestMethod1
中。
[DataTestMethod]
[DynamicData(nameof(TestCaseGenerator(3)),DynamicDataSourceType.Method)] //CS8081 Expression does not have a name.
public void TestMethod1(int value1,value2.ToString()));
}
public static System.Collections.Generic.IEnumerable<object[]> TestCaseGenerator(int UpperBound)
{
for (int i = 1; i <= UpperBound; i++)
{
for (int j = 1; j <= UpperBound; j++)
{
yield return new object[] { j,i };
}
}
}
似乎很难找到与这种用法相似的示例。欢迎任何建议。
参考:
https://stackoverflow.com/a/47791172/6667035
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。