2 回答
TA贡献1829条经验 获得超4个赞
测试用例源的定义模式略有不同。假设您使用 nunit 3 它应该是:
[TestCaseSource(typeof(MyTestData), nameof(GetDataString))]
public void TestMethod2(List<Config> configs)
{
...
}
public class MyTestData
{
public static IEnumerable GetDataString()
{
var datas = new List<Config>();
datas.Add(new Config("Nick", "Coldson"));
return new TestCaseData(datas);
}
}
TA贡献1862条经验 获得超7个赞
您的GetDataString退货a List<Config>.
这意味着,带有 a 的测试方法[TestCaseSource("GetDataString")]将执行与列表中的项目一样多的次数,并且您的方法必须与项目类型匹配。
//// This one throws System.ArgumentException
//[TestCaseSource("GetDataString")]
//public void TestMethod(List<Config> configs)
//{
// Console.WriteLine("Config " + configs);
//}
// This one is ok
[TestCaseSource("GetDataString")]
public void TestMethod(Config config)
{
Console.WriteLine(config);
}
如果您需要List<Config>在测试中获取实例,那么您的源必须返回一些包含列表项的集合。
- 2 回答
- 0 关注
- 89 浏览
添加回答
举报