【发布时间】:2017-02-01 19:46:01
【问题描述】:
使用 Microsoft.VisualStudio.TestTools.UnitTesting;
我想要通用测试方法,它获取 Dictionary 和 function,然后检查 Value 和 function(Key) 之间的每个字典条目是否相等:
public void TestMethod<TKey, TValue>(Dictionary<TKey, TValue> dict, Func<TKey, TValue> func)
{
foreach (var test in dict)
{
Assert.AreEqual(test.Value, func(test.Key));
}
}
但是如果 Values(和函数的返回值)是
List<int>
当然,它不起作用。所以,我发现不是我需要的
CollectionAssert.AreEqual
对于这种情况。 但现在我不得不说,我的价值是 System.Collections.ICollection。如何做到这一点?
【问题讨论】:
-
我知道。但我收到错误“无法从 TValue 转换为 System.Collections.ICollection”。我想我不得不说 TValue 可以是 System.Collections.ICollection
标签: c# list unit-testing collections assert